No es la primera vez, ni eres el primero en tener este problema. Un miembro de StackOverflow tuvo el mismo.
Te daré la misma solución que dí en stackoverflow en ese momento.
http://stackoverflow.com/questions/9...537896#9537896
Utiliza
Canvas.Refresh luego de cambiar las propiedades de la fuente.
Código Delphi
[-] tv.Canvas.Font.Color := clBlack;
tv.Canvas.Font.Style := tv.Canvas.Font.Style + [fsBold];
tv.Canvas.TextRect(Rect1, Rect1.Left, Rect1.Top, Node.Text);
tv.Canvas.Font.Style := tv.Canvas.Font.Style - [fsBold];
tv.Canvas.Font.Color := clRed;
tv.Canvas.Refresh; tv.Canvas.TextRect(Rect2, Rect2.Left, Rect2.Top, 'Texto rojo');
Esto lo aprendí "the hard way" cuando estaba desarrollando Biolab.
Saludos!