Для этого есть специальная инкрементная загрузка, как-то реализовывал подобную функцию, немного сложновато на мой взгляд, зато оптимально использует системные ресурсы. В руководстве есть хороший пример и описание подобной вещи. Точно сказать, где это находится не помню уже, но точно есть). На что могу указать, так это создаете абстрактный класс, реализующий интерфейсы IList, ISupportIncrementalLoading, INotifyCollectionChanged. От него создаете другой класс, а в нем метод, который будет загружать данные. Это, конечно, все очень просто описано, но вкратце алгоритм такой.