Actually, that's what I also remembered. Of course one could make the buffering code a separate process but this would complicate things to a certain degree. Then it's probably better to rely on some external daemon like JACK.
The following thread references a pthread call that can set sched RR or sched FIFO.
http://lalists.stanford.edu/lad/2001/Nov/0508.html
However it says later on that in some cases raising the priority may make things worse since it will force a usleep to busy wait. It also talks about tweaking you HZ value. For example we may get better results by cranking up HZ to 1000 Hz to increate the time tick resolution on reschedules.
A 1 ms tick is what I use on all my embedded sytems.
Sounds reasonable and should be an easy test.
Ok now I'm really headed to get some sleep..