This cannot be done with simple css as suggested above. Mozilla based browsers wouldn't listen to the css code shown above. I have tried them over and over, and then moved to the jQuery FixedTable plugin.
It is easy to integrate with the plugin, and have your first column freezed. Instead of me repeating all the stuff that you have to do, please read the following post. This is from my bookmarks, and the plugin could have changed now from the time I bookmarked it.
http://www.bluelemoncode.com/post/2011/12/30/Freezing-gridview-header-and-columns-while-scrolling-rest-of-the-content.aspx
The jQuery FixedTable plugin can be downloaded from the following url.
http://www.novasoftware.com/Download/jQuery_FixedTable/jquery.fixedtable.js
You can also see a demo at the following url.
http://www.novasoftware.com/Download/jQuery_FixedTable/jQuery_FixedTable_Demo.htm
Nevertheless, the concept is easy to adhere to.
Hope this helps.