A little more work involved here than in the previous case, but definately worth it. Add a new UserControl to your project and replace the code with that shown below. As you can see we have made the BackColor property of the TabControl Visible in the Designer and put a custom background behind Transparent Tabpages.
This control has been updated to incorporate a modified version of the SelectedIndexChanging event in code examples by Matt Hinz and Ken Tucker.
The project needs a custom designer to get the Design time painting to behave properly, but that's something for a later project.
You'll find TabControlEx on my Controls page with all the work already done.

This is not random. The tabpages appear in their zOrder.
I do not know why the zOrder changes but it does.
The simple solution to reapplying the zOrder is, starting from the first tabitem and working your way to the last, select each tabpage in turn, in the order in which they should appear, (make sure the tabpage is selected and not the tabcontrol) and right click the tabpage. A menu will appear and you should select SendToBack. You may need to close and reopen the form designer to see the result in the IDE but it will be correct at runtime.

If you want the ability to drag tabs around at runtime then this code will do it for you.
Add a Tabcontrol (with the AllowDrop property set to True) and the code below to your form.
This code is based upon code submitted to CodeProject by Paul Auger. The original is here.

Add the following classes to your project and make one of the following calls to your forms constructor after the InitializeComponent() call (assumes your TabControl is named TabControl1):

This will give you simple DragArrange of the tabs.
[VB] Dim DragTabs As new TabDragger(TabControl1)
[C#] TabDragger DragTabs = New TabDragger(this.tabControl1);

...and this will give you the ability to drag tabs out of the tabcontrol.
[VB] Dim DragTabs As New TabDragger(TabControl1, TabDragBehavior.TabDragout)
[C#] TabDragger DragTabs = new TabDragger(this.tabControl1, TabDragBehavior.TabDragOut);

You must resort to drawing the tabitems yourself to get the underlined character to show.
This is a very basic ownerdraw example.
Set the forms KeyPreview property to True.
Set the Tabcontrols Drawmode property to OwnerDrawFixed and add the code below to your form.

This was one of the first projects I tackled in dotnet. The object was to have the tabpages support WindowsXP Visual Style. Adding visual style to an inherited TabPage was simple and after a few attempts I got the TabControl to accept the custom Tabpages via the Collection Editor.
Well since then I have learned a lot and I decided that I would rewrite the control. My goal this time was to get the DesignerVerbs to add the customised Tabpages as well as add an Insert verb. This turned out to be quite a challenge, since the TabControl Designer would not detect mouse clicks on any part of the control that was not a TabPage or TabItem. When I finally found the solution to this problem, as is usually the case, it was very simple to overcome. While I was at it I added an OnselectedIndexChanging event so that Tabpage changes may be cancelled, and a HotTab variable so you can check which tabitem the cursor is currently over. It would have been nice to add Mnemonic support, but that would involve taking full responsibility for painting the TabControl. If I'm going to do this then I may as well write the control from scratch.

I don't know why I didn't think to try this earlier. This also fixes the problem of tabpages not being displayed correctly when Alignment is set to anything other than Top and Appearance is not Normal. I have left the Border around the edge at 4 (when HideTabs is False), but you may wish to change this for the Button Appearance.

The following example adds a Custom TabScroller class to TabControl so that we may add a Close Button. For simplicity the TabScroller class is just 3 buttons placed on a Control but you may want something more complex. Using this same method it is also possible to just move the UpDown control to make room for the close button, but then you won't have control over the scroll position.

The following example creates a fully ownerdraw tabcontrol as in the simple example above.
The example also corrects the issue where Ownerdrawn tabcontrols give the wrong tabsize and uses GDI to draw the tab text.
We also draw a close button on each tab if the tab is selected or hot and close the tab if the close button is pressed.
I'll leave you to add a TabClosing event so that accidental closes can be caught.