Si añades los botones en tiempo de ejecución con un layout adecuado, la colocación de los botones la tendrías prácticamente solucionada.
Por otro lado, para setear el texto de cada botón con la letra correspondiente en cada caso, sería muy sencillo. Coges el código ascii de la letra 'a' o 'A', y ese será tu punto de inicio.
Tendrás un bucle que vaya de 0 a 26, una repetición x cada letra. Y lo único que tendrías que hacer es convertir el código ascii de la letra 'a' + el índice del bucle en caracter.
Es decir... si vas por la tercera vuelta... sería la letra 'c', y el bucle tendría como índice el 2.
Pues bien... al código ascii de la letra 'a' le sumas 2, y este código resultante será el código de la letra 'c', con lo cual solo tendrás que convertir el código ascii a caracter.
La única pequeña complicación que podrías tener sería la 'Ñ', que no la encontrarías en la posición correspondiente a nuestro abecedario debido a que no es un caracter standar para todos los idiomas. Pero eso lo solucionarias con alguna pequeña comprobación dentro del bucle.
Espero que te sirva de ayuda la idea, y si tienes alguna duda me lo dices ; )
Suerte.