Уилям Грегъри става пилот през 1980 г. Между 1981 и 1986 г. лети на среден стратегически бомбардировач F-111. В края на този период става инструктор. Служи в авиобазите Лейкънхед, Великобритания и Кенън, Ню Мексико. През 1987 г. завършва школа за тест пилоти в авиобазата Едуардс, Калифорния. До селекцията му за астронавт работи като тест пилот в същата авиобаза. В кариерата си има повече от 5000 полетни часа на 40 различни типа самолети, най-вече реактивни.
Служба в НАСА
Уилям Грегъри е избран за астронавт от НАСА на 17 януари 1990 г., Астронавтска група №13. Той е взел участие в един космически полет и има 400 часа в космоса.