To answer the original question, it's really quite easy. Take your favourite server package (I like twistd and nevow for speed and security, but the learning curve can be kind of steep.) Create an index page that pulls the list of files from the database/filesystem/wherever-you're-choosing-to-store-them and generates download links. Each download link should contain a nonce sized to make it extremely difficult for someone else to intercept a paid-for download and snag a copy themselves. Download link goes to a page which uses the nonce as an ID number and provides a bitcoin address to which payment may be sent. Upon receipt of payment, page unlocks and provides file for download.
If you want a plain-Jane, looks-ugly-but-works standalone server application that functions as described above, I could be convinced to put one together for you for a couple of bitcoins.