Sending out a list box with a lot of items to the client is expensive. In addition, the JavaScript engine of the browser is not good for initializing a list box with a lot of items. A better solution is to use the live data, i.e., by assigning a list model to it. Then, the list items are sent to the client only if they become visible.
The performance will be improved more if you also use the paging mold.
Refer to the List Boxes section in the ZUML with the XUL Component Set chapter for more details.