Ext JS's grid supports buffered rendering, which enables you to load large numbers of records into a grid without paging.
Only the visible portions of the loaded store are rendered into the DOM. As the edge of the rendered data scrolls towards being in view, the table has new rows appended just in time, and rows removed from the receding side.
It is not possible to lock all columns using the user interface. The side unlocked must always contain at least one column.
The code is not minified, see locking-infinite-scroll.js