For your first question, I would say that it refers to the fact that when you are using a pretrained model, only the last group is not frozen (the custom head added by the fastai lib consisting in two fully connected layers with batch norm and dropout, or something like that. You can check it in the source code), and you unfreeze group by group your model layers.
If you create a model using learn = create_cnn(…), you can do learn.freeze_to(-2) to unfreeze the second last layer group in addition to the last layer group, and then, learn.unfreeze() to unfreeze all the layer groups if you have 3 groups in your model (I think this is the case for resnet34 arch).
Each time you unfreeze a layer group, you train your model before unfreezing a new layer group. That would be the gradual unfreezeing.
For your second question, I think you might access the layer groups by using learn.model, and indexing it with the layer group number.
learn.model[0] would refer to the first layers group of your model, and learn.model[-1] the layer group of your model head
learn.model[0][0] would give you the first layer of the first group