OK, I was pretty sure you had JTable.... This is probably a HUGE part of the problem.
But it can be solved, I don't know how to copy the link for a previous answer I made but basically for financial data and JTable, you want to read the following...
Sun has a tutorial precisely for this purpose called the "Christmas tree" that specifically address the "frequently updated data like financial ones" Swing/JTable slowness problems.
Here you go, "How to create frequently updated JTable that perform well":
http://java.sun.com/products/jfc/tsc/articles/ChristmasTree/
One of the thing that I found really amazing was to constantly display the memory used: you may want to do that.
You'll be amazed at how much needless crap is generated by a default JTable, slowing everything down and making of course the GC trigger way more often than it should: needless objects creation, needless graphical redrawing, etc. It all makes for an application unusable, even on very fast setups.
So start implementing all the tricks given in the link I gave you and you'll see that everything shall run much smoother. I'm now running very complex and "constantly updated" JTable and all is fine now :)
Basically, besides for the simplest case and tiny amounts of data, the default JTable implementation is really terribly bad.
Once you start working with "real world data" (like financial stuff ;), you need to follow the steps outlined there if you want your JTable to perform well.
I'm not saying it's your only cause of slowdown, but I've been there and implementing most of the hints hinted by Sun in that article greatly helped. Actually I went from an unusable application to a very enjoyable one.