I just figured out another solution to this now very old problem. However, my solution only works if the font size remains consistent.
I set the anchor point of my text layer to 0,0. This puts the anchor point at the bottom of the first line, always.
Then, adjust the baseline shift in the character panel so that the anchor point aligns with the top of the first line instead of the bottom.
then, apply an expression to the anchor point property that uses sourceRectAtTime(time,false); to get the size of the layer and adjust the anchor point.
I only needed mine to be centered vertically, so mine was like this:
rect = sourceRectAtTime(time,false);
[transform.anchorPoint[0],rect.height/2];
but you could also do
rect = sourceRectAtTime(time,false);
[rect.width/2,rect.height/2];