Вы можете разделить записи на интервалы по 100. Вы можете изменить событие OnScroll, проверить границы и посмотреть, находится ли оно в нижней части списка, затем вы можете загрузить следующие 100 и так далее. То же самое относится и к вершине.
Это вроде гетто, но я думаю, что оно будет более эффективным. Плюс это потребует больше логики.
Для этого вам может потребоваться более мощная система.