Para los titulos se usan las filas fijas (propiedad FiexedRows). Por defecto debería aparecer una fila fija, y en ella ponens los títulos.
Puedes simular una columna de solo lectura habilitando o inhabilitando la propiedad goEditing según te mueves por las celdas (evento OnSelectCell). Por ejemplo:
Código Delphi
[-]
procedure TForm1.StringGrid1SelectCell(
Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ACol = 2 then
StringGrid1.Options := StringGrid1.Options - [goEditing]
else
StringGrid1.Options := StringGrid1.Options + [goEditing]
end;
// Saludos