Wenn du dir selbst so eine Komponente zusammenbasteln willst, schau mal
hier, mit den dort vorgestellten Funktionen müsste das recht einfach möglich sein.
Du brauchst eigentlich nur die Funktionen aus der dort vorgestellten
unit und bastelst dir daraus eine eigene Komponente.
Dazu leitest du dir eine Komponente mit einem Canvas ab (z.B. ein TImage) und berechnest die Punkte, die die Funktion TextAlongBezier() braucht anhand einer "Punkte auf Halbkreis"-Berechnung, bei der Breite und Höhe des Canvas einbezogen werden (Mittelpunkt des Kreises liegt unten in der Mitte, Radius ist die Höhe des Canvas), wenn du einen exakt "runden Bogen" willst.
Ansonsten brauchst du eine Berechnung für "Punkte auf einer Ellipse", das wird dann etwas komplizierter, aber dennoch denke ich machbar