You can use the ZColorStringGrid component (free). The component has additional properties for each cell (text rotation, indentation, color, alignment). Support for multi-line text (and can rotate multi-line text) and merge cells.
Code example:
ZColorStringGrid1.CellStyle[0, 1].Font.Name := 'Tahoma';
ZColorStringGrid1.CellStyle[0, 1].Font.Size := 12;
ZColorStringGrid1.CellStyle[0, 1].Rotate := 90;
ZColorStringGrid1.Cells[0, 1] := 'Rotate' + sLineBreak + 'text' + sLineBreak + '90 degrees';
source
share