I'm fairly new to C# myself, so I may not have the full/right answer, but here is what I did in a similar situation.
Firstly, If you're using a progress bar, then you need to know the total number of items you're loading so you can tell the progress bar what the maximum value will be.
Then you set up a loop to load the listbox with data and incrementing the count of the progress bar.
A few words about the loop:
If the progress bar count exceeds the maximum value you have set, you will get a run time error.
If you are loading a LOT of items into the listbox, then don't update the progress bar every single time, rather do it every 10, 20, 50, 100 items (you shouldn't really have a listbox with thousands of items anyway, it's pretty inefficient).
You may need to refresh the screen display so the user can see the progress bar in action if you're in a tight loop.
Here's a little sample "air code":
pb1.Maximum = maxNumberItemsToLoad;
for (int i==0; i<maxNumberItemsToLoad; i++)
{
lbItem = "String to add to Listbox"; //Read/Get your data to put into listbox here
listbox1.Items.Add(lbItem);
pb1.Increment(1);
//May need to do a this.Refresh(); here if pb1 does not update
}