Try this LISP:
You can adjust the value '0.0001' on line 26 to increase the sensitivity. (set it to 5 and it will select any text within 5 Y-units of selection)
(if (equal y2 x-coord 0.0001)
(defun c:SelectByYAlignment ()
(setq ent (car (entsel "\nSelect a text object: ")))
(if (and ent (or (eq (cdr (assoc 0 (entget ent))) "TEXT")
(eq (cdr (assoc 0 (entget ent))) "MTEXT")))
(progn
;; Extract coordinate of selected text
(setq entData (entget ent))
(setq y-coord (car (cdr (assoc 10 entData))))
(if (null y-coord)
(setq y-coord (car (cdr (assoc 11 entData)))))
;; Select all text objects in the drawing
(setq ss (ssget "X" '((0 . "TEXT,MTEXT"))))
(setq selSet (ssadd))
(if ss
(progn
(setq i 0)
(repeat (sslength ss)
(setq ent2 (ssname ss i))
(setq entData2 (entget ent2))
(setq y2 (car (cdr (assoc 10 entData2))))
(if (null y2)
(setq y2 (car (cdr (assoc 11 entData2)))))
;; Compare only X-coordinates, ignore Y
(if (equal y2 y-coord 0.0001)
(ssadd ent2 selSet))
(setq i (1+ i))))
(princ "\nNo matching text found."))
;; Highlight selected objects
(if (> (sslength selSet) 0)
(sssetfirst nil selSet)
(princ "\nNo text objects found with the same Y-coordinate."))
)
(princ "\nSelected object is not a TEXT or MTEXT."))
(princ))