You are correct.
The MoveObj hit detection requres that the mouse cursor be completely within the bounding box of the object, and the bounding box of a horizontal or vertical line has no "inside". Also, by default, we use a coarse box of abount 5 pixels, at the end of the mouse cursor, and it is this box that must be within the bounding box of the object.
You can use a rectangle shape to draw your horizontal and vertical lines, as long as they don't have to be razor thin. In the example below, a thin rectangle, combined with a line width of 2, give a solid line that the MoveObj mouse listener can grab. The titleLineShape.SetIntersectionTestDistance(0) call is important because it shrinks the test area of the tip of the mouse cursor down to a single pixel.
GraphicsPath titleLine = new GraphicsPath();
titleLine.AddRectangle( new RectangleF(0.1f,0.1f, 0.8f,0.002f));
RectangleF rect = titleLine.GetBounds();
ChartShape titleLineShape = new ChartShape(pTransform1, titleLine,
ChartObj.NORM_GRAPH_POS, 0.0, 0.0, ChartObj.NORM_GRAPH_POS,0);
titleLineShape.SetLineWidth(2);
titleLineShape.SetIntersectionTestDistance(0);
chartVu.AddChartObject(titleLineShape);