I've added substrate to a tank before with the fish in. As long as the substrate is not one that will cloud the water (plain, well washed gravel shouldn't), this is how I've done it:
Scoop the substrate into a bowl. Lower the bowl into the water slowly. Once the bowl has filled with water, lower it to substrate level and slowly pour out the contents while watching for any fish in the way. Repeat ad nauseum.
Its def a slow process, but shouldn't bother the fish too much. Its certainly less stressful than capture, temporary relocation, capture, move back to original tank.
As long as your tank is rectangular or square, there is a handy substrate calculator here- Substrate Calculator
For sand, etc., some tinkering of the figures in needed because you get a lot of wasted wash off. But for gravel this should be fairly accurate. There's a more thorough one out there that I like, but I can't seem to find it presently.