Используйте ListView вместо ScrollView. Затем вы можете сохранить свою коллекцию элементов в массиве. Вам придется создать свой собственный адаптер, который возвращает (n% size) -й элемент для индекса n.
Вам также необходимо добавить OnScrollListener в ваш ListView, который проверяет, видны ли первый и / или последний элементы в списке. Если это так, вы захотите «увеличить» размер вашего адаптера, увеличив возвращаемый размер (а не внутренний размер) на исходный размер.
Возможной проблемой, с которой вы можете столкнуться, является поддержание правильной позиции прокрутки в ListView после роста адаптера. Возможно, вам придется проверить положение первого видимого элемента перед изменением размера адаптера, а затем прокрутить до этой же позиции.
Имейте в виду, что непрерывная прокрутка будет занимать все больше и больше памяти, пока ваш макет не будет отвечать.