I assume you want the data distributed as evenly as possible? (Avoiding 5 figs with 6 cols, and 1 fig with 1 col)
num_cols_base = floor(num_cols / num_figs); % all figures have this minimum number of cols
num_fig_w_extra = mod(num_cols, num_figs) % this many figures will have 1 more data col
num_fig_w_base = num_figs - num_figs_w_extra % this many figures have the base number
total_cols = (num_figs_w_base * num_cols_base) + (num_figs_w_extra * (1 + num_cols_base)); % sanity check
A double for loop using figure, and hold on and hold off does the rest.