I had to do something similar to this a while back. What I did was override the DataGridTextBoxColumn (I had to do this for several reasons).
In the paint event, I captured the column object by using GetColumnValueAtRow(). I set the text to blank if the column object evaluated to zero and it was a numeric column. Then I'd issue a drawstring function with the 'new' blank text.
It works fine for me, though I always wondered if there was a simpler way.
I always wondered if there was an easier way, but I never found a property or format mask that I could set.
I see that someone just responded with a message on custom formatting, so you should probably try that first (and I think I'll check it out as well). If that doesn't work and no one has a simpler solution, I can post a code sample.
Kevin