Puedes Hacerlo utilizando expresiones regulares mira
Código:
Imports System.Text.RegularExpressions
'en el Evento CellEndEdit de tu datagridview
Private Sub DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
Dim Txt$ = DataGridView1.Rows(e.RowIndex).Cells(0).Value.ToString
Dim Reg As New Regex("^(0[1-9]|1\d|2[0-3]):([0-5]\d)\s(AM|PM)$")
Dim m As Match = Reg.Match(Txt)
If m.Success Then
MsgBox("Ok")
Else
MsgBox("Error")
End If
End Sub
lo q hace este codigo principalmente es primero crear un expresion regular a traves del patron q se le asigna
luego crear una variable math q va a servir para verificar si conciden el texto de la grilla con la expresion regular para esto utilizo Math.success q verifica q si es true entonces los textos conciden y puedes realizar lo q tu quieras yo muestro solo un mensaje Ok y error tu puedes poner q le vas a agregar