Интересно, что Silverlight 3 DataGrid поддерживает группировку внутри (на уровне API), но не предоставляет пользовательский интерфейс для фактической активации группировки. Перетаскивание столбца над обычными заголовками, как вы говорите, очевидный способ сделать это, но он просто не реализован в стандартной DataGrid Silverlight 3.
Различные сторонние поставщики (например, http://www.telerik.com/products/silverlight/gridview.aspx и http://www.componentone.com/SuperProducts/GridSilverlight/ и другие ...) имеют отличные сетки Silverlight, которые предоставляют эту функцию из коробки, а также фильтрацию, подсетки и все виды других наворотов. Однако они не являются бесплатными (но могут быть дешевле, чем реализовывать их самостоятельно), и компания, в которой я работаю, оценила многие из них в июне 2009 года и обнаружила, что производительность прокрутки в реальном времени была немного низкой по сравнению со встроенной (виртуализацией) Silverlight DataGrid для больших наборов данных. Конечно, теперь все может измениться, или вы можете больше заботиться о возможности группировки, чем быстрой прокрутки. Надеюсь, это поможет?