I agree with UVE, in that you have to use QwtPlot::setAxisScaleDiv() to be able to have variable distances between your labels on your scale. For that you need to have some sort of calculation of knowing what your scale would look like at any given instance.
Now displaying label part should be easy.
If you want to display your own labels, you can subclass QwtScaleDraw and reimplement label (double).
Obviously, you will have to tell your QwtPlot about your new QwtScaleDraw implementation by using QwtPlot::setAxisScaleDraw().
Inside label(), you can even have a mapping of the 'double' argument with your label strings.
Bookmarks