That sounds like perfectly normal behavior to me, even though there are hundreds or thousands of people browing the site at a time, there are only a few actually in the state of "waiting for the server to render the page", let alone, actually connected to mysql and issuing a query. If you time a page to see how much time has passed after loading, it usually happens quite fast, maybe half a second for a very slow page. And when you're browsing the web you load what, maybe one page a minute? This, of course, all depends on what kind of content your are serving and how much text is on each page.
Everything sounds like a perfectly normal site to me, maybe it's time you move mysql on to it's own server or get a beefier machine? Either that, or audit your code and optimize queries.
How much traffic are you pushing?
Try issuing the command:
mysqladmin -uusername -p status
It should show output like below, giving us a better insight into how busy your mysql server is. (these are from my workstation/personal server, very very low traffic as you can see)
Uptime: 67823 Threads: 1 Questions: 963 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 5 Queries per second avg: 0.014