Тоже пытался на Delphi сделать заголовки по центру, ничего готового не нашёл, пока выкрутился через обработчик события OnDrawColumnHeader.
procedure TForm1.StringGrid1DrawColumnHeader(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF);
begin
// заливка "родного" заголовка
Canvas.Fill.Color := TAlphaColors.White;
Canvas.FillRect(Bounds, 0, 0, [], 1);
// настройка текста нового заголовка
Canvas.Fill.Color := TAlphaColors.Black; // Цвет текста заголовка колонки
Canvas.Font.Size := 12; // Размер шрифта заголовка колонки
Canvas.Font.Style := [TFontStyle.fsBold]; // Стиль шрифта заголовка колонки
// отрисовка текста по центру
Canvas.FillText(Bounds, Column.Header, False, 1, [], TTextAlign.Center);
end;