Why in this:
Grid[{{Item[Rotate["this is a long text example", Pi/2], ItemSize -> {2, 10}]}}, Frame -> True]
or this
Grid[{{Pane[Rotate["this is a long text example", Pi/2], {59, 300}]}}, Frame -> True]
the text length is still wrapped based on the horizontal dimension?

UPDATE
To reinforce my comment, lets try something more close to the unfortunate complexity of the real world:
Grid[{{Row[{Rotate["this is a long text example", Pi/2], "haha"}]}}, Frame -> True]
vs
Grid[{{Item[Row[{Rotate["this is a long text example", Pi/2], "haha"}], ItemSize -> {2, 10}]}}, Frame -> True]

So, I think you can see that placing Rotate before, instead of after, is probably not an universal solution.
PS: and many of these difficulties would not be there if Grid was intrinsically completed with what was added with Pane... like the possibility of limiting in height and not only in width, the ImageSizeAction, or better, ItemSizeAction, or both...
(since there is the Scaled, couldn't there be a Imaged and an Itemed equivalent?)








Grid[{{Rotate[Pane["this is a long text example", {300, 59}], Pi/2]}}, Frame -> True]... think about it. – ciao May 24 '15 at 18:25Grid[{{Item[Rotate["this is a long text example", Pi/2], ItemSize -> {{2}, 10}]}}, Frame -> True]andGrid[{{Item[ Row[{Rotate["this is a long text example", Pi/2], "haha"}], ItemSize -> {{2}, 10}]}}, Frame -> True]seems to work. – kglr May 24 '15 at 19:30Grid[{{Pane[Rotate["this is a long text example", Pi/2], {{Automatic}, 300}, Alignment -> Center]}}, Frame -> True]– kglr May 24 '15 at 19:41