I've just checked something.
I put 500 (cloned) objects in a vector and update them every frame.
- some basic free-fall math, updating velocity and position
- every object performs two collision checks every frame against its group of 500 (Sparky's)
- there's a basic physics system that transfers kinetic energy when objects collide
- I topped it up with a high resolution scrolling background
- every object displays a message using dbText (which is claimed to be sluggish)
- transparent interface made of *.png
- there's slightly above 540.000 polys in the scene
- basic AI (follow, avoid and runaway)
- some more stuff to keep it all in place
On a C2D 1.6GHz laptop with ATI's X1800 video card it still churns out 59fps (it never goes above or below that value). When I turn one of the cores off and drop the clock to 900MHz, it still outputs 49fps with occasional dips to 45. Memory consumption is below 200MB.
My desktop machine C2Q 3.2 and GTX 8800 happily handles 1000 objects without breaking a sweat.
Bear in mind that GDK still utilizes only one core. My conclusion is that something must have gone horribly wrong with your code or you are running it on a really low spec machine.