This looks like an application of unstack.
Not sure what you'll be doing with that table, so I can't say if that "wide" version is a convenient organization, but you are correct that it should reduce the memory footprint by removing redundant data. It might also be possible to create a timetable with one row for each parameter combination (as you've show), but instead of
>> days(datetime(2017,12,31) - datetime(1980,1,1))
variables, you'd have one variable that's a cell array, each cell containing one 13879x1 timetable. You'd have some unnecessary redundancy (the time vectors), but that organization might be more convenient. Or maybe not.