Regarding slowdowns: try -verbose:gc and see if you get any output that correlates to the slowdowns. I doubt there will be any, however. The issues probably relate to thread scheduling. Other demonstrations than the Gears demo (which runs at hundreds of frames per second if sync-to-vertical-retrace is disabled) that run at ~70 FPS look very smooth.
Other than the fact that it seems to GC continuously?
... a lot of GC similar to the line below happening all the time ...
[GC 1913K->1405K(1984K), 0.0020791 secs]
[GC 1917K->1423K(1984K), 0.0026429 secs]
[GC 1935K->1399K(1984K), 0.0019733 secs]
[GC 1911K->1406K(1984K), 0.0021693 secs]
[GC 1918K->1399K(1984K), 0.0020983 secs]
[GC 1911K->1439K(1984K), 0.0031239 secs]
[GC 1951K->1398K(1984K), 0.0019469 secs]
[Full GC 1398K->427K(1984K), 0.2301223 secs]
[GC 939K->430K(1984K), 0.0032683 secs]
[GC 942K->429K(1984K), 0.0029342 secs]
[GC 941K->430K(1984K), 0.0019340 secs]
[GC 942K->442K(1984K), 0.0022335 secs]
[GC 954K->429K(1984K), 0.0021853 secs]
[GC 941K->429K(1984K), 0.0019332 secs]
Clearly at some point the OSX JVM cleans house something fierce

Anyways, so much for the idea that all Java applications consume a lot of memory

You could fit that demo on a PS2 for sure
