You would create this as a Label subtype, as labels can be attached to objects.
You create your ‘target’ using LINE2, CIRCLE2, and POLY2, as you would any 2D object.
You create your text items using the TEXT2 command (or RICHTEXT2 – but from what you’ve shown, multiple TEXT2 lines should be enough).
You get your data items using the REQUEST command, which can query any parameter in the associated object. E.g. to do one line item: