1. You are not using numImagesRequired anywhere. Why do you need it?
2. Can you spot the problem with these lines:
string pic = dataViewImages.SelectedCells[index].ToString();
pic = this._files[index];
3. Why do need that for loop?
I would suggest to have a hidden column with path of the image displayed in each row. Then you can use following:
pic.Image = Image.FromFile(dataGridView.CurrentRow.Cells["hidden column index here"].Value.ToString());