It shouldn’t be too bad. It does use more rows, but at the same time, you are not restricted by the number of image columns that are available for each subject. You could in theory add as many images as you want to a subject.
Unless I’m misunderstanding your goal, I also think it would be easier for a user to add images. Instead of multiple components for each image column, you would only need a single form that would automatically get the subject you are viewing and you would only need a single image picker component. Submitting the form would add the correct subject and image to the images sheet.
Otherwise, if you still wanted to stick with your original method, you would still have to convert those columns to rows with some kind of sheet transpose formula and basically take the data and dynamically build another sheet with everything tranposed into rows. Doable, but in my opinion, much more work than is necessary.