I ran into a similar problem. The scenario was that I already had a large (~400+ elements) to be displayed in a list, where each element can have it's own view. The creation, layout and painting of the DOM for those elements was slower than I needed when tryign to render the entire list inside a scrolling DIV.
I looked at several solutions.
InfinityJS [1] was pretty close to what I wanted except it required that the element containing the list items already be added to the DOM.
infinite-scroll [2] by Paul Irish was also interesting, but was solving a specific problem that was different from what I needed to solve.
MegaList [3] came closest to what I wanted. Andrew (author) has done a great job of designing it for mobile first, with touch support etc. One caveat for me was that it appears to assume a strict selection list model and does a little bit more than I'd like a list component to do (e.g. binding to resize events and trying to handle that automatically).
So I started writing a barebones list component losely modeled after the iOS UITableView -- and called is the js-virtual-list-view (vlv :-). It's a work in progress and I wouldn't recommend it over the above unless you have similar needs that aren't quite met with those.
Sources are here https://github.com/shyam-habarakada/js-virtual-list-view.
Contributors needed :-)
[1] http://airbnb.github.io/infinity/
[2] http://www.infinite-scroll.com/
[3] https://github.com/triceam/MegaList