Du kannst ja den Font des Canvas vor jeder Textausgabe anpassen.
Zum Beispiel: (Text wird dann Fett gedruckt und unterstrichen ausgegeben)
Code:
...
Printer.Canvas.Font.Style := [fsUnderline, fsBold];
Printer.Canvas.TextOut(TextPartPosX, TextPartPosY, TextPart);
...
Dein Ansatz ist aber leider generell nicht sehr flexibel. Im Prinzip müßtest Du die Steuerinformationen, wie die einzelnen Textpassagen auszugeben sind, in den Text mit reincodieren. Falls Du das aber immer genau so ausgeben willst kannst du das sicherlich auch so machen.