Ma il problema e' che non riesci a settare l'ActiveTabIndex oppure che vuoi farlo senza postback ?

Ho fatto una prova e "la forzatura" funziona:

codice:
       <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
       <ContentTemplate>

        <AjaxControlToolkit:TabContainer ActiveTabIndex="0" runat="server" ID="TabContainer">
            <AjaxControlToolkit:TabPanel TabIndex="0"  Height="500px" ID="TabPanel1" runat="server" HeaderText="1" Width="100px">
               <ContentTemplate>
              tab 1
               </ContentTemplate>
            </AjaxControlToolkit:TabPanel>
            
            <AjaxControlToolkit:TabPanel TabIndex="1"  Height="500px" ID="TabPanel2" runat="server" HeaderText="2" Width="100px">
               <ContentTemplate>
              tab 2
               </ContentTemplate>
            </AjaxControlToolkit:TabPanel>

            <AjaxControlToolkit:TabPanel TabIndex="2"  Height="500px" ID="TabPanel3" runat="server" HeaderText="3" Width="100px">
               <ContentTemplate>
              tab 3
               </ContentTemplate>
            </AjaxControlToolkit:TabPanel>
        </AjaxControlToolkit:TabContainer>

        <asp:Button ID="bt" runat="server" Text="Postback !" />

        </ContentTemplate>
        </asp:UpdatePanel>



VB.Net:

    Protected Sub TabContainer_ActiveTabChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabContainer.ActiveTabChanged
        If TabContainer.ActiveTab.TabIndex <> 0 Then
            TabContainer.ActiveTabIndex = 0
        End If
    End Sub
in grassetto il tabIndex per ogni tab, che mi sembra manchi al tuo codice aspx...