Inkscape does text on a path very well. And is open source.

-Rob A>