Вы можете генерировать миниатюры из класса Image в .Net (Image.GetThumbnailImage). Что касается макета, который вы здесь показываете, вы можете использовать FlowLayoutPanel или какой-либо другой тип панели (или свой собственный), который будет динамически добавлять изображения в вашу форму. Оттуда вы можете выделить вокруг изображения и добавить кнопку управления X в OnPaint, просто отслеживайте, какие из них выбраны, а какие нет через некоторый класс контейнера (добавьте изображения в нечто вроде HashSet (.Net 3.5 или выше) так что вы можете быстро добавлять / удалять их из коллекции и повторять их в OnPaint.