Según lo que entiendo, quieres hacer varias cosas...
La primera es poder desplegar un listado con casillas de verificación. Hasta el momento no lo eh probado con un listbox, pero si con un grid y es relativamente fácil.
En un grid configuras las siguientes propiedades de la siguiente manera:
THISFORM.Tugrid.ColumnCount = 2 *O las que necesites.
THISFORM.Tugrid.DeleteMark = .F. *Oculta la casilla de delete.
THISFORM.Tugrid.GridLines = 0 *Sin líneas en el grid.
THISFORM.Tugrid.HighlighRow = .F. *Para que no resalte cada fila al enfocarla.
THISFORM.Tugrid.PanlelLink = .F. *Inhabilita el link del panel.
THISFORM.Tugrid.RecordMark = .F. *Oculta la marca de registro.
THISFORM.Tugrid.ScrollBars = 2 *Vertical.
THISFORM.Tugrid.SplitBar = .F. *SplitBar inhabilitada.
Luego en el formulario en tiempo de diseño le das click derecho al grid (Tugrid) y selecciones edit (editar). Ahora el grid (Tugrid) aparece con un recuadro celeste, sin que este recuadro desaparezca seleccionas el control casilla de verificación y lo marcas dentro de la columna en donde quieras que aparezca. Por defecto cada columna tiene un cuadro de texto como control por defecto. Luego configuras en tu grid lo siguiente:
THISFORM.Tugrid.Column1.CurrentControl = 'Check1'
* El nombre de la columna depende de cual quieras modificar, así también la casilla.
Para agregar una imagen a un cuadro de lista (o cuadro combinado) es más fácil:
THISFORM.TuListBox.picture(1) = 'C:\tu directorio\tu imagen.jpg'
THISFORM.TuListBox.picture(2) = 'C:\tu directorio\tu otra imagen.jpg'
* Él numero entre paréntesis indica él numero de índice de tu lista.
* Puedes usar mapas de bits también.
Revisa la imagen adjunta.
Espero te sirva.