Когда я должен был это сделать, я создал 2 Gridview рядом друг с другом.
Первый Gridview должен иметь только замораживаемые столбцы. Второй будет иметь остальные, и будет в прокручиваемом теге div.
Я определил количество строк, поэтому для меня это не проблема, но если вы прокрутите одну сетку вниз, строки не будут соответствовать второй сетке.
Вот еще одно решение с использованием CSS ... но я не пробовал:
http://www.codeproject.com/KB/webforms/FreezePaneDatagrid.aspx
Если вы используете сторонние элементы управления, такие как Telerik RadGrid, они обычно имеют встроенные свойства для управления Freezing Columns.