Normalmente el desglose de un conjunto se hace mediante una tabla subordinada (esto es: una tabla auxiliar).
Se crea un campo de relación en el registro del alumno (puede utilizarse el ID del mismo alumno) la condición es que ese campo pueda ser indexado como único en ese conjunto (por ello el ID_entificador del alumno es valido).
En la tabla auxiliar (la de materias) ha de haber un campo para el ID que la asocia con el alumno, cuando menos otro para el nombre (o identificador) de la materia y otros complementarios (por ejemplo: el nombre de enseñante ..).
La tabla con las materias debería indexarse por mas de un campo (como mínimo la materia y el alumno) para evitar que se duplicasen sus registros en el binomio Materia/Alumno.
(Una indexación es similar a crear un campo LLAVE sin las imposiciones y restricciones que tiene el ser LLAVE con multiples campos).
Se mostraría en el formulario de forma preferente como un subformulario continuo otra alternativa consiste en un cuadro de lista (visualiza mas datos que un combo).
Un caso similar se puede presentar si se desea llevar el control de las calificaciones y podría planificar si abarcara mas de un año lectivo a lo largo de la carrera del alumno (por ejemplo, añadir además de la materia habrá que añadir el año lectivo, campo que se añadiría a los antes indexados.
La idea es que cada dato que a su vez necesite un desglose, ese desglose requiere una tabla aparte.
La idea de crear campos en el mismo registro en tiempo de ejecución debería descartarse pues ello exigirá el modificar el diseño de la tabla en tiempo de ejecución (complicado con la tabla en uso).