That is a part of the problem. Too much overhead creating the socket to send each individual email (either for PHP [need a beefier dispatcher, or your SMTP server, need beefier SMTP server OR larger internet connection] but it is necessary for personalizing, understandable). I would have to know more about your network topography and servers to give some useful suggestions. Here is what I can say right now. If they are your machines, use a sendmail box with the dispatch set to queue or deferred only, and let it do queue runs every 15 minutes (or use sendmail locally, even better if this machine is beefy enough). That will boost your initial output.
Note: If you are using an ISP, a lot of them use a single box, like a Cobalt or something, for all the services which does not really cut the pudding in these situations. Then, I have seen some routing through a Linksys home DSL router (I have seen it in data centers). Then, if you are also sharing that server with others??? Maybe everyone is piped through a whopping 256K connection (fine for home)??? Believe it or not, if your sendmail is doing background delivery, your connection and hops to the internet will also impact your programs dispatching performance as it will be lagging from waiting on sendmail, that is trying to do NS lookups on the fly, through a restricted data pipe.
There are a lot of factors involved with something like this. If you give more details on your network and software, I can try to help you since a larger server is not always the answer....
Hope I didn't offend anyone.
Good luck.
Matthew Pirvul
eAccounts.NETwork