Try using a Dictionary to keep a reference of the parent nodes you are using:
Dim coaches As New Dictionary(of String, TreeNode)
While DataReader.Read()
Dim coachNode As TreeNode = Nothing
If coaches.ContainsKey(DataReader(0).ToString) Then
coachNode = coaches(DataReader(0).ToString)
Else
coachNode = New TreeNode(DataReader(0).ToString)
coaches.Add(DataReader(0).ToString, coachNode)
TreeView2.Nodes.Add(coachNode)
End If
coachNode.Nodes.Add(DataReader(1).ToString)
End While
TreeView2.ExpandAll()