It's a technique called "infinite scroll", and multiple libraries support it. If you're using jQuery, take a look at:
http://www.infinite-scroll.com/
As you know, the idea is to determine "how much" of the dataset the user can current see, and then perform a request for only that much, but set the scroll in relation to the size of the entire set. That way, once the user scrolls past a certain point, you can request for the next part of the dataset.
ExtJS also has this as part of their component-based framework. Here's a grid example.