Quizás te parecerá chorra mi solución, pero visualmente es efectiva! xDD Y es poner casi tantos '-' según el width del ListBox...
Con un ejemplo se entiende mejor:
Código Delphi
[-]function StringLine(const LineChar: Char; const Len: Integer): String;
var
n: Integer;
begin
Result:='';
for n:=1 to Len do Result:=Result + LineChar;
end;
Usando la función y el "truco":
Código Delphi
[-]ListBox1.Items.Add(StringLine('-', ListBox1.Width div 4));
Por qué divido por 4? La respuesta es porqué los guiones (-) tienen una anchura superior a 1 píxel, así pues no necesito tantos guiones para cubrir la anchura del ListBox. Eso sí, si cambias el ancho del ListBox en tiempo de ejecución, se jodió el invento!! xD.
Sé que quizás la solución que te he propuesto, es realmente estúpida y quizás mala, pero es la primera que se me ha ocurrido en 1 minuto xD Si se me ocurre algo mas profesional, te lo comento...!!
Saludos.