You've not defined DataColumn.DataType for this column:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim col As Column
  For Each col In Me.FlyGrid.Columns.Items
    Dim dc As DataColumn = New DataColumn(col.FieldName)
    If (col.FieldName = "DateTimeColumn2") Then
      dc.DataType = System.Type.GetType("System.DateTime")
    End If
    dataTable.Columns.Add(dc)
  Next
End Sub