There are probably many ways of achieving this ...... here is one way I would explore if I were trying to solve the problem.....
Use PHP to create session files for each started download, that were then stored or enumerated in a database (MySQL or SQLite - whatever rocks your world), and counted before allowing a new session (file download) to be started - if the number of sessions is over the set limit -> display "too many users" error.
Don't forget to delete the session entry when the download finishes.
Use your favourite search engine to look for "PHP how to count downloads" for ideas and code examples.