I think there is a misunderstanding here, either on your part about collection views, or on my part where your difficulty lies.
If I understand correctly, you fear that if you have an array of 1000 items, they would all be loaded into the collection view. This is not correct. Cells in the collection view are loaded dynamically and on demand. Whenever a cell is to be displayed, the data source is asked for the information for that cell. The information is never loaded all at once at any point. If you can display 8 cells at most on the screen, 8 cells are loaded at most in memory. That's it. When the user scrolls, the cells are recycled and used to display the next items, and so on.
So a few things. First, your optimization of paging the data is not necessary. If you need to load data in pages, you should provide the collection a number of items and then load and unload pages as the user scrolls. If the information is not big, you can load it all if possible. 1000 rows does not sound like a lot of information if the data is well normalized. Second, your query that returns 1000 items - fear not, the collection view will only load the necessary cells for what it can display and nothing more. It will reuse previous cells for data that follows.