I would recommend doing some profiling of the applet to see what you can trim down, assuming opening lots of tabs with the applet is a standard use case. You will need to run the applet very lean.
You may also want to use the applet lifecycle methods more to your advantage. When the applet page loses focus, I believe the applet's stop() method is called. Once the applet page comes back into view it start() should be called. You could use the applet stream persistence to share your running data across the different tabs, saving it out on stop() and loading it back in on start()... not sure this is a great solution, but it might work.
Other than "because they can" is there any legitimate reason for a user to have a bunch of tabs with your applet running in each? If it's just a far-out test case, you may just want to do what you can and then document the issue.
Good luck.