I had a similar requirement and found the following solution (can't remember where to give credit). In your case I would replace the switch with one that looks up what colour to display each item from an array or hash-table.
First, set the DrawMode property of your ListBox to OwnerDrawFixed
Second, in your forms Designer.cs file add the following:
this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);