You could do this in a PrepareViewStyleInfo event handler without deriving a cell control. But deriving a cell control will probably be more efficient as PrepareViewStyleInfo is hit a lot.
In your OnDraw override, do not call the baseclass to do the drawing. In the base class, the value stored in the original style is drawn and you do not want this. Instead, call the static GridStaticCellRenderer.DrawText method to draw the text. Doing so, allows you to specify the exact text to be drawn.
protected override void OnDraw(System.Drawing.Graphics g, System.Drawing.Rectangle clientRectangle,
int rowIndex, int colIndex, GridStyleInfo style)
{
int i = (int)style.CellValue * 10;
//style.CellValueType = typeof(string);
//style.CellValue = "Val = " + i.ToString();
string text = "Val = " + i.ToString();
//base.OnDraw(g, clientRectangle, rowIndex, colIndex, style);
GridStaticCellRenderer.DrawText(g, text, style.GdipFont, clientRectangle, style, style.TextColor);
}