Hai dichiarato un array, lo hai dimensionato, ma non hai creato nessuno degli oggetti che dovrebbero essere contenuti in esso:

codice:
this.ArrayCaselle = new Caselle[64];
Crea un array di 64 elementi... ciascun elemento è nullo, perchè non è stato creato alcun oggetto Caselle.

Nel for...
codice:
Caselle c = new Caselle();
this.ArrayCaselle[contatore].add(c);
Crei un oggetto "Caselle"... lo chiami "c", poi cerchi di richiamare il metodo "add" di un oggetto dell'array in posizione "contatore", che però è ancora nullo, non avendolo mai creato.

Forse, quello che volevi fare tu era questo:
codice:
Caselle c = new Caselle();
this.ArrayCaselle[contatore] = c;
?

Ovvero, assegnare alla posizione "contatore" dell'array, l'oggetto appena creato.

Ciao.