This answer is years late, but you may wish to explore pagedtable.js which is a javascript table library allowing paging of both rows and columns. It's the same implementation that is used for the inline paged dataframe display in rmarkdown.
I do not believe it has the ability to "freeze" the first column like you are asking but it's pretty close.