The only way that I know to do this john is if you have points for the locations that you want to label, and you have linestrings drawn between those points using the Point ID method (where the line is a dependent object on the points) and this can be created from Feature code processing or from drawing a linestring using Point I vs Coordinate input. Then when you define a Label Style for Point Objects and set the parameters as follows

Then when you label the points that you want to label, because there is a line at the point it can determine the orientation of the text if you have the Align Labels to associated line segment checkbox checked above.
The challenge is that a "line" doesn't have one elevation - it has a series of elevations, so Elevation is not a real property of the line, it needs something else to determine the elevation e.g. Text Insert Point (derives a Station along and an elevation of) or Leader Line (where the tip of the Leader indicates a location along and an elevation of) etc.
If this is critical, and you don't like the need to use SHIFT Click on the line to determine the orientation of the Text for each placement (I assume you know that trick) then we have a toolbox of things that we could use to create a new function for this if you need it (Our place aligned blocks tool does the calculations needed and we could easily create a Place Aligned Text command from that - the only issue is making that Text Smart Text for the reasons mentioned above - line elevations need a location along in order to determine the Z value to display so moving a piece of text would change the elevation for example.
Here is a short video of the 2 options that I think you have. I did discuss with development and they may be able to make a change to fix this issue in certain scenarios - I will let you know if I hear more.
Click Here to download video
Let me know
Alan