Ъгълът на завъртане на текста всъщност се задава на шрифта. Твябва да направиш нещо такова:
procedure AngleTextOut(ACanvas: TCanvas; Angle, X, Y: Integer; Str: string);
var
LogRec: TLogFont;
OldFontHandle,
NewFontHandle: hFont;
begin
GetObject(ACanvas.Font.Handle, SizeOf(LogRec), Addr(LogRec));
LogRec.lfEscapement := Angle*10;
NewFontHandle := CreateFontIndirect(LogRec);
OldFontHandle := SelectObject(ACanvas.Handle, NewFontHandle);
ACanvas.TextOut(X, Y, Str);
NewFontHandle := SelectObject(ACanvas.Handle, OldFontHandle);
DeleteObject(NewFontHandle);
end;