One possible solution is to handle the CurrentCellValidateString method and verify the text is valid with each keystroke.
Here is a sample showing this method.
The second option is to use our DateTimePicker in a cell and format it.
Here is a sample showing this implementation.