The java millisecond timer is accurate only to within about 60 ms on Wintel machines running 95/98 (probably others), which is much too much slop for sound synthesis.
The JNTimer provided here is accurate to within roughly 1 ms on the 95/98/ME/XP platforms (probably be larger for NT/2000).
The JNTimer native backend uses the MMSystems timeGetTime() method from the microsoft monopoly.

This package is meant only to tide over until Sun implements a decent millisecond timer on Windows.
To urge them to do this, please register your interest in this feature here.

A basic periodic timer with a setable period, and a "start" and a "stop" method.
As in the standard paradigm, you add event "Listeners" to JNTimers that have a callback function to perform actions when the timer fires.

To use:
Download the zip file, and unzip. Then just see the ReadMe.txt.
There are JavaDocs and example code, so it should be pretty easy to get up and going.