Is there any reason you can't do the watermarking on-the-fly as you are serving the download? That way, all you need to store for more than a few minutes is stuff you're keeping anyway - customer name and watermark key. To do this, you will probably need to set up your watermarker as an external CGI (from Apache's perspective) that you can call from the download page. Warning: You might have timeout issues, depending on how long the watermarking process takes.
A maybe nicer but more complex way would be to recast your watermarker as an Apache module and stream-feed the results. MUCH more work, though, and quite likely less flexible.
[edit] added in response to OP's comment
For CGI, start
here[
^] Essentially, whatever your program/script writes to stdout gets sent to the client.
Can you get the customer to wait a minute or two while you prepare the download? Show 'em a movie or something :)
The other point I should have mentioned that you can buy a 2TB HDD (almost 10 days worth on your numbers) for around US$100. Maybe the old mainframe mantra of "throw more hardware at it" would be the most painless way to go.
[/edit]
[edit2] in response to second comment
A zip or rar might be what you're looking for. Compression and multiple files in one. IIRC the 'directory' in a zip file is at the end, so you can stream multiple files out, remember the details, and write the directory at the end.
[/edit2]
Cheers,
Peter