Crea un ActionListener che, in base ad una variabile (ad esempio una booleana se hai solo due colori) cambi il colore delle textfield:

codice:
public class CambiaColore implements ActionListener {
   private boolean colorWhite;
   private JTextField[][] matrice;

   public CambiaColore(JTextField[][] matrice) {
      this.matrice = matrice;
      colorWhite = true;   // all'inizio le JTextField sono bianche
   }

   @Override
   public void actionPerformed(ActionEvent ae) {
      // Cambio il colore a tutte le JTextField in base al valore di "colorWhite"
      for(int row=0; row<matrice.length; row++) {
         for(int col=0; col<matrice[row].length; col++) {
            matrice[row][col].setBackground(colorWhite ? Color.BLACK : Color.WHITE);
         }
      }
      colorWhite = !colorWhite;
   }
}
Poi crei un Timer (javax.swing.Timer) passandogli un'istanza di questo ActionListener ed il delay (ovvero, il tempo di pausa):

codice:
// Suppongo che la matrice di JTextField si chiami "m", come da tuo esempio
// 2000 = 2 secondi (2000 millisecondi)
new Timer(2000, new CambiaColore(m)).start();
Ciao.