Reposition() function collects all widgets underneath and calculates their dimensions. However if you've just enabled a game object, chances are its widgets haven't initialized yet. If you want widgets to init/refresh immediately, you need to use NGUITools.ImmediatelyCreateDrawCalls.
You should pass the panel's game object to it.
There must be something else there other than the label, or the label's width and height is actually much larger than what you suggested. I'd have to see what it looks like in the scene view. Why is that header a part of the table anyway?