Here's something pretty rough. The basics are there but need some additional formatting and a function to determine the correct side of the line. If I have more time, I'll try and get it working a bit better.
;;Label Station Offset
;;Red Transit Consultants LLC - Steve Hill
;;2015-08-10
;;BETA Version 0.0.1
;;Items to be fixed
;;- Correctly determine which side of line selected point is on and output
;;- Prompts for other wording
;;- More control over text
;;- Format station values to station formatting
(vl-load-com)
(defun c:LabelStationOffset()
(setq pt (getpoint "\nPoint: "))
(setq pline (car (entsel "\nSelect centerline object: ")));can be any line, arc, pline, ellipse, spline
;;Get Offset Distance
(setq perpPt (vlax-curve-getclosestpointto pline pt))
(setq lblPerpDist (distance perpPt pt))
;;Get station length along line
(setq lblStaDist (vlax-curve-getDistAtPoint pline perpPt))
;;Determine which side of line
(setq ang (angle '(0. 0. 0.) (vlax-curve-getFirstDeriv pline (vlax-curve-getParamAtPoint pline perpPt))))
(setq perpAng (angle perpPt pt))
(setq resAng (- perpAng ang))
(if (> resAng 0)
(progn
(setq side " RT")
);progn
(setq side " LT")
);if
;;Format results
(setq lblStaDist (rtos lblStaDist 2 2))
(setq lblPerpDist (rtos lblPerpDist 2 2))
;;Compose Label
(setq text (strcat "MH, " lblStaDist ", " lblPerpDist side))
;;Create Label
(command "_.mtext" pt pt text "")
(princ "")
);defun