I recommend that you don't create one control per file. That seems unnecessary, the list can manage all the entries and painting itself, which will save you a lot of window handles and time/memory used in creating controls. You should not need to do the display in a separate thread, it should not be that slow.
You can see how to make a list-like user control (in WinForms) in my article here:
LineEditor Control – Line based visual input/output[
^].
Also, is there a reason you can't just use the ListView for this? What you are trying to do (a list with items and images) sounds very similar to what the ListView will do.
As for the specific question you asked, refer to SA's solution.