First, I have to determine in advance the lower bound of the number of correct guesses. As no matter what we do, there will always be exactly 50% correct guesses among the whole set of possible situations, the fact that the "all black" and "all white" scenarios imply wasting more correct guesses that needed, we know we can't reach n/2 correct guesses. There are 2^n scenarios, n guesses for each, half of these will be correct, 2n are already taken by "all white" and "all black", 2^n-2 remaining scenarios to dispatch the remaining n*2^n/2-2n correct guesses. For n=3 that makes exactly one correct guess, when n gets bigger, it quickly gets closer to n/2.
We can therefore say that for n>2, an optimal strategy can theoretically give a lower bound of floor((n-1)/2) correct guesses. We can notice that when n is odd, it is equal to floor(n/2), which also is the optimal strategy in the classical case without symmetrical strategies.
Now, here is how I build a strategy itself. The rule is that every player makes the assumption that he has a white hat. So, the strategy that he follows is made to ensure that the required number of correct guesses is met, taking account what the black hats mistakenly guessed. If he is wrong, then the players who actually have white hats will correct that with their own guesses.
This way, we can build the strategy recursively, based on the scenario where everybody has a white hat.
Suppose you have a strategy for a player who sees x black hats, and there are x+1 players with black hats.
Any player with a black hat will follow the strategy that is already established.
Any player with a white hat, assuming he himself has a white hat, knows exactly what every player with a black hat will guess. Therefore he knows how many additional correct guesses need to be made.
Next step is to decide who will guess black and who will guess white.
Any player can use the hats as bits, 0 being white and 1 black, find the starting position that gives the smallest value for the integer represented by the bits in the circle. For example, in a 5 players configuration, a player who sees, starting from his position, bwbw, will assume the whole table has wbwbw (adding his own assumed color at the beginning), which means 01010. Using all the possible starting positions, he gets 01010, 00101, 10010, 01001 and 10100. The smallest is 00101, so the situation every white hat player can consider is wwbwb, and every white player know where his place is (our example player who sees bwbw is in second position).
If it is not the case, meaning there is a symmetry in the table, then we will just need to make sure the strategy keeps this symmetry.
Then, the players must have agreed on a way to decide who will guess right (white) and who will guess wrong (black). Apparently, any way works fine, so let's decide that the "white" guesses are attributed to the first white players from the left. In our example, if they have one correct guess to make, then the guesses will be wbibj, i and j being the guesses of the players with black hats, derived from the known strategy with x black hats.
So as every player know where his place is, he knows what must be his guess. Our example player who sees bwbw, being in second position, guesses black.
Ok, something could go wrong here: if the number of remaining required correct guesses is higher than the number of players with a white hat, the strategy can't be built. I don't have a formal proof of why it doesn't happen, but when you actually build the strategy, you notice that at each step, the fraction of black hats that already guess black because they aimed to guess wrong only gets bigger. The bigger it is, the more correct guesses are already acquired by the previous strategy, so the more purposely wrong guess there are, which means the more actually correct guesses there will be for the next step.
So, putting aside this potential source of problems, we have a strategy for a player who sees x+1 black hats, built on the strategy for a player who sees x black hats. We also know that a player who sees 0 black hats must say white to prevent the "all white" situation from being a total failure, so we have our global strategy, for any n>2.