탭을 세로로 놓는거 저도 좀 쉽게 생각했던게 사실입니다.
어차피 탭위젯이 리니어 레이아웃이니까 말이죠...
걍 오리엔테이션 버티컬 하면 되지라는 생각이었는데

생각보다 탭위젯에 박혀있는코드들이 넘 많습니다.
잴큰 이유가... 기본 탭 인디케이터에 주는 효과때문인것으로 보입니다.
그거 아니면 굳이 그런것을 다 세팅할 필요가 없거든요...

소스를 보면서 고민하던차에 드디어 알아냈습니다.

     setContentView(R.layout.vertical_tab_main);
     TabHost tabHost = (TabHost)findViewById(R.id.tabhost);
     tabHost.setup(getLocalActivityManager());
        
    tabHost.getTabWidget().setOnHierarchyChangeListener(new OnHierarchyChangeListener() {
   
    @Override
    public void onChildViewRemoved(View parent, View child) {
    // TODO Auto-generated method stub
    
   }
   
   @Override
   public void onChildViewAdded(View parent, View child) {
    // TODO Auto-generated method stub
    
     final LinearLayout.LayoutParams lp = new LayoutParams(
             ViewGroup.LayoutParams.FILL_PARENT,
                   0, 1.0f);
        lp.setMargins(0, 0, 0, 0);
        
        child.setLayoutParams(lp);
   }
  });
        
        
        Intent intent = new Intent();
        intent.setAction("android.settings.WIFI_SETTINGS");
  
        TabSpec spec = tabHost.newTabSpec("a");
        spec.setIndicator("a");
        spec.setContent(intent);
        tabHost.addTab(spec);
        
        TabSpec spec2 = tabHost.newTabSpec("b");
        spec2.setIndicator("b");
        spec2.setContent(intent);
        tabHost.addTab(spec2);
        
        tabHost.getTabWidget().setOrientation(LinearLayout.VERTICAL);

res/layout/vertical_tab_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:theme="@android:style/Theme.NoTitleBar">
 <TabHost android:id="@+id/tabhost" android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:orientation="vertical">
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="horizontal" android:layout_width="fill_parent"
   android:layout_height="fill_parent">
   <TabWidget android:id="@android:id/tabs"
    android:layout_width="100dip" android:layout_height="fill_parent" />
   <FrameLayout android:id="@android:id/tabcontent"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:layout_weight="1"
    android:paddingTop="0px">   
   </FrameLayout>
 </LinearLayout>
 </TabHost>
</LinearLayout>

vertical_tab.png 
탭인디케이터를 보면 모양이 이상하다는 느낌이 드실겁니다.
기본 탭 인디케이터를 제대로 모양이 나게 하려면 TabHost와 TabWidget을 잘 구현하는 방법밖에 없어보입니다.
단순히 배치만 세로로 나오게 만든거구요...
탭인디케이터에 커스텀 뷰를 주시는것을 추천합니다.