Generally, the Vertical List and the Horizontal List are designed to work with very long lists of items. For this purpose, the components avoid to copy the original data. They limit only to cache the actually visible items and few of the items preceding/following them. As such the lists are optimized to be memory efficient. Nevertheless, your question is very interesting. Are there any other limitations?
Yes, all variables used to address an item are declared as int32. Considering this aspect, the limitation would be to 2^31 (~2.000.000.000) items.
However, the lists also need to calculate with item positions. For example, in order to estimate how long the entire list is (the position behind the last item), the Vertical List multiplies the number of items by the height of a single item. This arithmetic operation as well as its results are again int32. Consequently, to avoid arithmetic overflows, the operation NoOfItems * ItemHeight has to be less than 2^31.
Probably, the most significant limitation will be the available memory where you have to store the list data.
Does it answer your question?