InitializeComponent()内のtableLayoutPanel1.SuspendLayout()が原因ですが、
なぜそうなるかはさすがに追いきれませんでした。
// わざわざインテリセンスに出ないようにしてるのはこの辺の挙動の不安定さからなのかしら。
とりあえず回避策として、BeginInvokeでちょっと実行を遅らせればなんとかなるようです。
Sub Form1_Load(略) Handles MyBase.Load
Me.BeginInvoke(New MethodInvoker(AddressOf GetSizes))
End Sub
Sub GetSizes()
Dim heights = TableLayoutPanel1.GetRowHeights()
Dim widths = TableLayoutPanel1.GetColumnWidths()
End Sub
<追記>
ちなみにShownイベントでなら問題なく取得できるようなので、
問題なければこちらのイベントを使うのもいいでしょう。
</追記>