Hola vejerf, sobre la palabra clave Self, nos sirve para hacer referencia al objeto actual que en tu caso sería tu formulario. Cuando creas un componente en tiempo de ejecución debes asignarle el propietario de dicho componente en su constructor. Así como lo hiciste, donde el propietario de tu Timer sera tu formulario y con Seft haces referencia a dicho formulario
Código Delphi
[-]
Medios[N].Timer := TTimer.Create(self);
Sobre la liberación, cada vez que se crea un objeto es necesario liberar, pero como hemos creado un componente y le hemos asignado un padre, que en tu caso es el formulario, este formulario es el que se encarga de liberar todos sus componentes, por lo que ya no necesitas liberar tu Timer.
Si estoy mal, ya nos corregiran.
Saluditos