Кол-во элементов списка ограничивается только доступным объемом ОЗУ.
Допустим у вас 32-битная ОС.
Список, в отличие от массива, устроен таким образом, что в самом списке хранятся только адреса (из 32-битного адресного пространства) расположения самих данных. При этом, хранить в памяти нужно и адреса (элементы списка), и сами данные.
Так вот, при создании списка, например, с 2,147,483,647 элементами только для хранения элементов списка (адресов) потребуется не менее 2,147,483,647 x 32 = 68,719,476,736 бит памяти, или 8,589,934,592 байт = 8 ГБ.
А ведь ещё нужно хранить сами данные. И не нужно забывать, что запущенный софт на машине тоже требует для своей работы память.
ps. Массивы гораздо эффективнее используют память, но есть ограничение – все элементы массива имеют единый заранее определенный тип.