I have a SharePoint Communication site and my goal is to allow viewers to see documents, but they have to request access to download them. My idea was to create a list of the documents and have some sort of user form for each item. I do not know how to create an automated list from the document library (with columns) and to create a form for each item
First thing, in SharePoint Online, mostly list is not the place for holding documents. The way we can have is to use the list attachments to hold the documents. If you have a large number of documents, you may need to write a PowerShell Script to do so. BTW, I do not think using a list to hold these documents will be an easy option as it does not save your work, but add more.
Then if a user is able to see/view the document in a library, then he/she is able to download them. Using the browser to print the document is always a trick to create a pdf file for downloading. If you have decent security concerns, it may better to consider deploying IRM.