Generally draw calls via g.drawstuff are your first bottle neck. However most systems can do 10k before suffering. My integrate chip laptop POS can get around 5-10k depending on image size.
What is the fillrate on the images? What can happen if the fillrate gets to high I found is that the frame rate will hit around 30 but not drop lower until the draw calls hit that magic cap on most systems.
To confirm this baseless theory I just suggested. Once it drops to 30, does it stay there even when you add more draw calls?
What you could do if you have say a platformer/tile/grid system. On start up render all of the background or foreground or tiles to a volatile image and then render that each frame. This would seriously reduce draw calls and the fill rate will not take a hit either. I was going to do something similar in my Retro project which is all done in java2D.