Private schools are better at educating students for a reason - competition. Since their money comes from consumers rather than the government, they have to do better than public schools and other private schools in order to stay in business. Without a superior product, they would fail on their own.
God I love capitalism.
There is another reason why private schools tend to do better than public schools, self-selection. Kids whose parents care about their education do better, no matter what their other circumstances are. Since public schools are the default choice, they receive all of the kids whose parents don't care about education. Those who go to private schools have parents who care about the schooling their children receive. The only way to get rid of the self-selection effect would be to abolish the public schools entirely.