Hola amigo,
lo que tienes que hacer es programar en el evento MouseUp del tabcontrol ahi preguntar por el tab seleccionador y liberarlo
mira este ejemplo
al igual que tu creo pestañas en tiempo de ejecucion
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TabControl1.TabPages.Add("Hola")
TabControl1.TabPages.Add("como")
End Sub
y programo el evento del tabcontrol mouseup
Private Sub TabControl1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseUp
If e.Button = Windows.Forms.MouseButtons.Middle Then
TabControl1.TabPages(TabControl1.SelectedIndex).Dispose()
End If
End Sub
y listo, cada vez que des click con la ruedita sobre una pestaña se cierra,ah para que esto funcione el tab q vas a eliminar debe ser el tab actual mostrado es decir que si tienes el tab1 que muestra y das click sobre el tab2 se cierra el tab1, igualmente seria bueno que preguntaras antes de eliminar un tab, ahi es cuestion tuya, espero haberte ayudado
saludos cordiales
JC