My girlfriend has Stitcher's Apprentice, and she thinks that you can activate its ability, use the homunculus to block, and then sac the homunculus. Is this possible, or does the sacrifice have to happen before the homunculus can be declared as a blocker?
Alex P has the answer right, but I thought it prudent to point out the principles you and your girlfriend are missing when it comes to the declare blockers step and playing and resolving abilities.
Note this well: declaring blockers is a turn-based action that doesn't use the stack. Therefore, if she wants to block with the Homunculus token, your girlfriend has to play the ability to generate the token during the Declare Attackers Step, after you've declared your attackers but before the Declare Blockers Step begins.
To be clear, one of the costs to play the ability is tapping the Stitcher therefore she won't be able to block with it in the Declare Blockers Step.
I point this out to emphasize that the Declare Attacker's Step doesn't end until the stack is empty. There is no opportunity to declare blockers until the stack is empty. Even if she could do something during the resolution of the Stitcher's ability (see below), she couldn't declare blockers.
So the Stitcher's ability resolves:
She could sacrifice the Homunculus just created
(Oops, got this striked-out part wrong. "Enters the battlefield" trigger isn't state-based, it's event-based. A trigger would have to be written as "if you ever have X creatures in play" or something similar for it to be state based. Very tricky and non-intuitive part of the rules, in my opinion!)
As Alex P suggested, she could wait until the Declare Blockers Step, declare the Stitcher as a blocker, then play the Stitcher's ability. (Note he misspoke a bit. There is no "between the declare-blockers step and the combat-damage step" — the ability resolves during the Declare Blockers Step.) When the ability resolves, she could sacrifice the Stitcher and have a Homunculus token on the battlefield.
In that case, During the Combat Damage Step, your attacker is still considered blocked, but has no creature blocking it, so it deals no damage (unless it has trample or some other deals damage as though it wasn't blocked ability.
When an ability resolves, all parts of it are resolved in the listed order. You can't interpose any other actions (including playing another ability, but also including ending a step). So, you must sac a creature immediately after the homunculus comes into play (before any ETB triggers even go off).
What you can do is chump block with a creature you already have on the field (including the Apprentice itself), then activate the Apprentice's ability between the declare-blockers step and the combat-damage step, sacrificing your chump. Even if you end up saccing the Apprentice to its own ability, you're still trading up to a 2/2 and getting a body in your graveyard, which is useful in an Innistrad blue deck looking for corpses to enable cards like Skaab Goliath and Stitched Drake.