save data from HTTP Client sketch to buffer

However this data can come in different sizes so I don't want to just define a massive array at the beginning and fill it as needed.

I suggest that you get over it, then.

I would prefer to define an array of the required size.

You could use malloc() to allocate the space, but you'd have to free() it before the next packet arrived. So, what's the benefit?

I cant use eeprom or progmem because this read occurs once every 10 seconds.

That doesn't mean that you can't use EEPROM, but PROGMEM keeps data in program space, which is read-only. The interval between packets is irrelevant.

What are you doing with this data? How long do you need to persist it?