Running PostgreSQL directly via pg_ctl, not as a service, will not change how it performs under load at all. It will not help you service more than 500 concurrent connections.
You really need to put a connection pool in place to limit the number of concurrent workers. Look at PgBouncer or PgPool-II. As far as I know neither of them runs on Windows; you might want to think about a Linux box as a front-end.
Thanks for your help. But when use PgBouncer, it run as service and may be it only support 512 connect (Because windows service only support default 125 connect, change registry windows can support 512 connect).