The problem is that when the Sort is done using the DataView (which is how the GridDataBoundGrid sorts things), it triggers a ListChanged event with type Reset. This Reset is what forces the grid to collapse the nodes.
If you use the 2.0 GroupdingGridControl, this will not be a problem. The nodes will not collapse when you sort.
If you want try to handle this in the GridDataBoundGrid, it does take some effort.
Here is a sample. It adds a new property in a derived grid that adds away to feeze the screen painting through a Win32 API call. This techique is discussed in one of our Windows Forms FAQ,
http://www.syncfusion.com/faq/winforms/search/637.asp