Since you have created the chart from scratch, we assume that you know how to create datasets containing xy data points, and plot the datasets in one of the QCChart2D plot objects (SimpleLinePlot, SimpleBarPlot, SimpleScatterPlot, etc).
So if you want a simple horizontal line, you need a dataset containing two points. The y-value of both points will be your specification limit, and the x-value of the first point will be the starting x-value of your scale and the x-value of the second point will be the ending x-value of your scale.
For a time-based x-axis use a ChartCalendar array and a TimeSimpleDataset.
double speclimit = 30;
ChartCalendar[] xarray = { pTransform1.TimeScaleStart, pTransform1.TimeScaleStop };
double[] yarray = { speclimit, speclimit };
TimeSimpleDataset SpecLimitDataset = new TimeSimpleDataset("SpecLimit1", xarray, yarray);
SimpleLinePlot specLimitPlot = new SimpleLinePlot(pTransform1, SpecLimitDataset, new ChartAttribute(Color.Blue));
chartVu.AddChartObject(specLimitPlot);
For a simple double based x-axis, use double arrays, and a SimpleDataset
double speclimit = 30;
double[] xarray = { pTransform1.ScaleStartX, pTransform1.ScaleStopX };
double[] yarray = { speclimit, speclimit };
SimpleDataset SpecLimitDataset = new SimpleDataset("SpecLimit1", xarray, yarray);
SimpleLinePlot specLimitPlot = new SimpleLinePlot(pTransform1, SpecLimitDataset, new ChartAttribute(Color.Blue));
chartVu.AddChartObject(specLimitPlot);