It can be done in
8 moves
1.e3 e6 2.Qg4 c6 3.Qxg7 Qg5 4.Qxh8 Qxg2 5.c3 Qxh1 6.a3 a6 7.Bxa6 Bxa3 8.Nxa3 Nxa6 *
Explanation:
In the initial position exactly half the pieces are on "wrong" squares. Those must be either captured or moved to good squares. To do so in fewer than 16 plies, there would have to be at least one piece that captured an unmoved opponent's piece on a good (wrong from opponent's perspective) square with every ply it makes. Also, each such piece would get rid of just one bad piece more than plies. From the initial position this is possible only for the Qs and Rs and only after the two pawns in their file have been removed. As these pawns are both on good squares (from their owner's perspective) this cannot be achieved without losing a ply somewhere.
Therefore the given solution is optimal.
Let us annotate the moves from this angle:
1.e3 e6 (0) both players move a piece from a bad to a good square, thus trading even
2.Qg4 (-1) white moves the Q without immediate gain
2 ... c6 (0)
3.Qxg7 (+1) white captures a bad piece and moves to a good square
3 ... Qg5 (-1)
4.Qxh8 (0)
4 ... Qxg2 (+1)
5.c3 Qxh1 (0)
6.a3 a6 (0)
7.Bxa6 Bxa3 (-1,-1) both black and white capture pieces that are already on good (for them) squares
8.Nxa3 Nxa6 * (+1,+1) both black and white move their Ns from bad to good squares while capturing pieces on bad squares.