In order to change the default behavior of the DataGridView you typically need to derive a child class based off the DataGridView class. I had to do this when I wanted to change the default behavior of the DataGridView's table cells as far as input goes, ie. pressing the up and down arrow, enter key, that sort of stuff.
What you're asking seems simliar to creating a custom column, I believe you should follow the same steps. However, I'm not sure how you could change the background color.
I would suggest you start there. In fact, when you want to do more with the datagridview than Microsoft intended, I've found you need to do this.
I would like to include a few links:
MSDN on creating custom columns for the DataGridView
Blog about creating custom input behavior for DataGridView
I know this may take some time and you were probably hoping for a quick fix, but learning the above can help you with other projects as well.
I may be wrong, there may be an easier way to do what you're saying.
Also, try googling "datagridview custom behavior".
I believe you are talking about a windows form application and not a web application, correct?