Конечно, он будет доступен во всех методах (в которых видна Ваша глобальная переменная). Но ещё раз повторюсь, использовать его можно будет только после создания формы.
К 4-ому вопросу.
На счёт Вашего примера - посмотрите в сторону стандартного модуля Generics.Collections, а конкретно шаблона TObjectList<>. Он позволит реализовать всё что указано в этом примере на порядок короче и правильнее.
1 и 6. <ирония> Как я понимаю Вы хотите написать этакий синглтон который и не совсем синглтон. ирония>. Если вам действительно нужен один экземпляр "главного" класса тогда оставьте его глобальной переменной и создавайте в секции initialization. Или в событии onCreate Вашей главной формы. Тут главное помнить, что к нему до создания нельзя обращаться. А в данном конкретном случае (в учебном проекте небольшого размера, используемом для изучения языка) я бы дал вообще страшный, и несколько вредный совет - пользуйтесь вместо этого класса глобальными функциями/процедурами переменными.