hello Walter,
I am using option 2. below is more detail about my work

alignment of left textblock are row1-4 using option go.spot.left
alignment of port1-4 text blocks are using go.spot.top
I do not want to rotate node but do not want to text block .below is the code that I have used as per suggestion
$(go.TextBlock, . . .,
new go.Binding(“angle”, “angle”, function(a) { return -a; })),
after rotating the block through 90 below is result

it roataing the text box correctly.but when I am editing the port say row1 then below is result
it 
so my query is that if I am rotating the text block could it possible that I can change the textblock alignment from go.spot.left to go.spot.top so that my text block behaving correcly?