¿Has reservado memoria para los arrays?
El segundo bucle
for (int j=0;i<NumCasillas;j++) , ¿Te das cuenta que no tiene control?. i no se incrementa, solo j y no existe un condicional de control para j=> bucle infinito.... ¿No querrás decir
for (int j=0;j<NumCasillas;j++)
Código:
TFrame **casillas = new *TFrames[NumCasillas];
for (int i=0;i<NumCasillas;i++)
//for (int j=0;i<NumCasillas;j++)
for (int j=0;j<NumCasillas;j++)
{
TFrame *aux= new TFrame("Aqui no estoy muy seguro de que pasarle");
casillas[i][j]= aux;
casillas[i][j]->Name="X";
casillas[i][j]->Legth="100";
......
aux=null;
}