Is it possible to template the container for datagrid rows so that they can wrap horizontally? eg in the ItemsControl you can simply change the ItemsPanel to use a WrapPanel.
I can't use a ItemsControl because I want to use the Grouping support in the DataGrid when bound to a DomainDataSource.