We still don't support threads, but that doesn't directly impact your ability to have a web2py site that is accessed by multiple people concurrently. When someone browsers a website, their browser makes a request to the server, which returns a page, and then they make another request, and another page comes back, and so on. So even if a thousand people were viewing a site, so long as the site responded quickly to each request, it could handle all of them with one process/thread.
Think of it this way -- if your code takes 0.2 seconds to respond to a request, then you can handle five requests per second with one process. If it takes 0.1s, you can handle ten requests/second -- but if it takes 0.5s, then you can only handle two requests/second.
If more requests per second come in than your site can handle, then they'll be put into a queue and processed in the order they came in -- so brief "spikes" in usage are not normally a problem, but sustained periods of lots of requests can lead to pages not loading.
Things get a bit more complicated with paid accounts; a free account has just one process handling all of its requests, whereas a paid account has at least two -- exactly how many depends on the details of the account. As you would expect, a website with two processes can handle twice as many requests as one with just one, and website with two can handle three times as many, and so on.