This code works OK for me. It causes the grid to display minutes and seconds only in column 4. The only difference I see is that it uses the new table style to access all the columns styles whereas in your code, you access the columnstyle to set the format through the datagrid.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'add a datasource to the grid
Me.DataGrid1.DataSource = Nothing
SqlDataAdapter1.Fill(Me.DataSet11, "FAQEntries")
Me.DataGrid1.DataSource = Me.DataSet11.Tables("FAQEntries")
'create a tablestyle based on the current contents
Dim myCurrencyManager As CurrencyManager
myCurrencyManager = CType(BindingContext(Me.DataSet11, "FAQEntries"), CurrencyManager)
Dim ts As DataGridTableStyle
ts = New DataGridTableStyle(myCurrencyManager)
'add the tablestyle to grid
DataGrid1.TableStyles.Add(ts)
'modify particular columnstyles in the tablestyle
ts.GridColumnStyles(1).Alignment = HorizontalAlignment.Right
ts.GridColumnStyles(2).Width = 30
ts.GridColumnStyles(4).HeaderText = "test"
CType(ts.GridColumnStyles(4), DataGridTextBoxColumn).Format = "h:mm"
End Sub