Right now, that alignment is tied to the anchor point... so if you change the anchor to be Middle Left, Center, or Right, it should align in the way you want. I believe I made it like this because it reflects the behavior of Unity's standard text meshes. I hope that works for you!
Also, if you wanted to obtain the amount of line breaks, I believe the variable "linebreaks.Count", if made into a public variable would do it. Or hyphenedText.Split('\n').Count-1 could also be used! This would be without vertical limit modes though. I think changing the anchor point should be enough, though!