Nice puzzle!
I managed to get the required number of table switching breaks down to
eleven.
This is the schedule:
Switch every 20 minutes:
period | 1 2 3 4 5 6 7 8 9 10 11 12
Player --+---------------------------------------
A | 1 1 1 1 1 1 1 1 1 1 1 1
B | 1 2 1 2 1 2 1 2 1 2 1 2
C | 1 1 2 2 1 1 2 2 1 1 2 2
D | 1 1 1 1 2 2 2 2 2 2 2 2
E | 1 2 1 2 2 1 2 1 2 1 2 1
F | 1 1 2 2 2 2 1 1 2 2 1 1
G | 2 2 2 2 1 1 1 1 2 2 2 2
H | 2 1 2 1 1 2 1 2 2 1 2 1
I | 2 2 1 1 1 1 2 2 2 2 1 1
J | 2 2 2 2 2 2 2 2 1 1 1 1
K | 2 1 2 1 2 1 2 1 1 2 1 2
L | 2 2 1 1 2 2 1 1 1 1 2 2
Every player plays against every other player on either 4 or 6 periods.
Read on if you are interested in how it was created.
After trying a couple of strategies, looks like four might be the magic number.
You can arrange four people to two tables (two in each) like this:
Hour | 1 2 3 4
Player --+---------
A | 1 1 1 1
B | 1 1 2 2
C | 2 2 1 2
D | 2 2 2 1
This is highly efficient: there are only two table swaps, and both tables have two players the whole time.
We can then "interleave" this grouping by adding another group of four that has the exact same schedule, but in addition to that, they spend the latter 30 minutes of every hour at the table opposite to their schedule.
This guarantees that the second group plays exactly 2 hours against everybody in the first group, and since their intra-group schedule is the same, known good one from before, everything should work out nicely:
Half-hour | 1 2 3 4 5 6 7 8
Player --+----------------
A | 1 1 1 1 1 1 1 1
E | 1 2 1 2 1 2 1 2
B | 1 1 1 1 2 2 2 2
F | 1 2 1 2 2 1 2 1
C | 2 2 2 2 1 1 2 2
G | 2 1 2 1 1 2 2 1
D | 2 2 2 2 2 2 1 1
H | 2 1 2 1 2 1 1 2
This can be further optimised by rearranging the half-hours; swapping 2 with 3 will get rid of some unnecessary board switching breaks:
Half-hour | 1&2 3&4 5 6 7 8
Player --+----------------
A | 1 1 1 1 1 1
E | 1 2 1 2 1 2
B | 1 1 2 2 2 2
F | 1 2 2 1 2 1
C | 2 2 1 1 2 2
G | 2 1 1 2 2 1
D | 2 2 2 2 1 1
H | 2 1 2 1 1 2
So now we have managed to accommodate 8 players with 5 board switches in total.
So, let's multiply again: again splitting every interval in two:
quarter-hour | 1&2 3&4 5&6 7&8 9 10 11 12 13 14 15 16
Player --+---------------------------------------
A | 1 1 1 1 1 1 1 1 1 1 1 1
E | 1 1 2 2 1 1 2 2 1 1 2 2
B | 1 1 1 1 2 2 2 2 2 2 2 2
F | 1 1 2 2 2 2 1 1 2 2 1 1
C | 2 2 2 2 1 1 1 1 2 2 2 2
G | 2 2 1 1 1 1 2 2 2 2 1 1
D | 2 2 2 2 2 2 2 2 1 1 1 1
H | 2 2 1 1 2 2 1 1 1 1 2 2
We could now interleave 8 more players, but since we only have 4 remaining, let's do that instead. We'll again copy the rows A-D, and invert the table selection at every even numbered column
quarter-hour | 1&2 3&4 5&6 7&8 9 10 11 12 13 14 15 16
Player --+---------------------------------------
A | 1 1 1 1 1 1 1 1 1 1 1 1
I | 1 2 1 2 1 2 1 2 1 2 1 2
E | 1 1 2 2 1 1 2 2 1 1 2 2
B | 1 1 1 1 2 2 2 2 2 2 2 2
J | 1 2 1 2 2 1 2 1 2 1 2 1
F | 1 1 2 2 2 2 1 1 2 2 1 1
C | 2 2 2 2 1 1 1 1 2 2 2 2
K | 2 1 2 1 1 2 1 2 2 1 2 1
G | 2 2 1 1 1 1 2 2 2 2 1 1
D | 2 2 2 2 2 2 2 2 1 1 1 1
L | 2 1 2 1 2 1 2 1 1 2 1 2
H | 2 2 1 1 2 2 1 1 1 1 2 2
And there we have it: A schedule for 12 players in 2 tables of 6, each player playing no less than 1 hour and no more than 2 hours against every other player. The schedule at the top is this very same one, with the players renamed, and the time periods changed to 20 minutes, because I realised I was being silly to make the four-player case timings asymmetrical.
(Also, if you have room in the tables, you could fit 4 more players in the schedule without needing any more breaks.)
I have absolutely no reason to believe that this would be optimal; it's just the best one I could come up with without using computers. (Please do watch out for typos)