The best way to do that is when you receive the data, rather than when you are presenting it to the user.
But a DGV is pretty flexible, and there is a CellPainting event it fires when a cell is to be drawn to the screen - I use it to colour cells according to their value:
Colouring DataGridView Cells According to their Content in WinForms[
^] - as a visual warning to the user, you could use that to indicate "invalid gender" values (though you run the risk of alienating a lot of people who don't believe in binary genders).
When it comes to testing the whole column however, you shouldn't use the DGV content at all, but the underlying datasource - DGV's should be filterable, orderable, pageable so the displayed content may not cover the whole data set.
Using the underlying datasource is simpler - because you can use whatever collection of information you started with - and more maintainable - because you can replace the DGV with a different control and not affect your code.
So look at your DataSource - and validate that (preferably before it gets to the display!)