For UI design, what’s “best” is subject to opinion. One could argue a list of 15+ fields with images at one time on a single page is best, it’s all there in one view for users to see and alter as needed. I personally don’t think that’s a good look, but there is a sort of simplicity to the scheme. I’d look at some sort of modal, accordion or fly-out elements which result from clicking on a list of images. The images themselves being part of an expandable fields scheme where users can add or remove elements as desired.
There are a number of plugins that collect variable amounts of user input. In a sense, the block editor is an expandable fields UI. You press the ‘+‘ icon, more information is collected, and the data is added to the “list” of blocks in a post. For that matter, adding posts itself is an expandable field scheme. In fact, you could manage the image and title elements as custom post types. One post for each set of titles with their image. Typically customizer options are saved as theme mods, which would also work.
A customizer specific example of expandable fields is where you add widgets to a sidebar. One can add any number of widgets, they each have their own set of settings.
IMO, there is not one “best” solution. What’s best depends upon the specific situation. I suggest you examine what other plugins and themes do for a similar situation and use what you like the most as inspiration for your own efforts.