By default, when using a text symbol, the location of the node is the upper left corner of the TextSymbol.You can change that by setting an OffsetX and OffsetY to your text symbol.That being said I am not sure that will solve your issue. The offset will still be the same whatever your map scale (note that the offset is in pixel not in map coordinates).I guess what you would need is a label engine that would try to avoid overlapping labels but this doesn't exist at client side yet.