Yeah, the normal Java timer is very low resolution. Perfectly fine for business transactions and basic timing, but isn't enough if you want to time things to the millisecond.
You need to either use the LWJGL high-res timer (Sys.getTime()) and time your graphics accordingly, or cap the frame rate to some known value so you can guarantee at least a certain time between frames.
I recently wrote a little class to handle frame rate capping for me, you might find it useful:
http://www.java-gaming.org/cgi-bin/JGOForums/YaBB.cgi?board=LWJGL;action=display;num=1048798837