My list is populated when the user clicks on the tabs. The getters only return the pre populated list. There are no db calls. And my java method returns in 5-10 seconds. The whole remaining time is taken by the browser to load the table.

It's clear that it is a browser issue because when the the Eclipse debugger exits, Firefox builds the page in less than a second, while IE still has nothing to show for 40+ seconds or more.

We were not able to resolve the issue. Fortunately, our user base is known and on the small side, so we could dictate to our users that they must install a modern browser for best performance. In that case we display 500 rows of data in our tables per page, a healthy amount. For the IE holdouts, I wrote a script to detect if they are running IE at login, and if they are, we reduce the maximum table rows displayed to 50 for all pages, and show a warning.