Creo que estas equivocado en el planteamiento, porque, qué piensas hacer si hay demasiados productos y no te caben en la pantalla? Para eso deberías usar lo siguiente:
1º Creas un objeto IMAGELIST en tu formulario, éste objeto actuará como almacen de imagenes. (Ten en cuenta que este tipo de objetos están, pero NO se ven durante la ejecución, solo los verás en tiempo de diseño)
2º Creas un objeto LISTVIEW, que se alimente de las fotografías del IMAGELIST.
-Lo primero que debes hacer es cargar el IMAGELIST con los resultados de tu búsqueda, y para eso te recomiendo que eches un vistazo a éste artículo:
https://msdn.microsoft.com/es-es/library/fat9bdzd(v=vs.110).aspx
-En segundo lugar debes configurar el LISTVIEW para que se alimente del IMAGELIST anterior, para eso seleccionas el objeto LISTVIEW, y en sus propiedades buscas la propiedad llamada: 'LARGEIMAGELIST', despliegas el menú, y verás que en la lista aparecerá el nombre de tu objeto LISTVIEW, lo seleccionas, también selecciónalo en la propiedad 'SMALLIMAGELIST', por si la vista que eliges es otra.
NOTA: También puedes configurar en las propiedades el tamaño de las imagenes que aparecerán, y como quieres que se visualicen (hay 5 maneras diferentes, se seleccionan en la propiedad 'View'). Aquí tienes información sobre los LISTVIEW:
https://msdn.microsoft.com/es-es/library/6dwb14tw(v=vs.110).aspx
Ten en cuenta lo siguiente: Primero carga el imagelist con las fotos, y despues crea en el listview tantos elementos como objetos de imagen tenga el imagelist, sino, no funcionará y te volverás loco. Aquí te pongo un codigo que usé yo no hace mucho, en el que se obtienen fotos con un select de una base de datos sql, después se almacenan dichas fotos en un imagelist, y tras eso se crean tantos objetos nuevos en el listview como fotos tenemos almacenadas en el imagelist. Si te vale, estupendo:
Para saber qué foto ha seleccionado el usuario, lo obtienes en el evento 'mouseclick' del Listview así:
Eso lo almacenas en una variable y así tienes el numero de foto seleccionada.
Si aún sigues empeñado en usar controles, aquí te dejo información, eso sí, para este ejemplo debes crear en tu formulario un objeto 'Panel', que no es mas que un recuadro que alberga controles:
http://www.qualityinfosolutions.com/agregar-controles-en-tiempo-de-ejecucion-a-un-panel-en-visual-basic-net/
1saludo