My dog is now about 8 months old, so technically still a puppy. I am trying to teach him to sit somewhere and stay there for a long time, for 20 min or more. Is that even possible? And if yes, what are good ways to teach that to a dog?
There are two ways how dogs perceive “being parked” somewhere.
One is a “sit” (or similar) as part of a chain of commands that will soon(-ish) be followed by the next exciting thing. Mine had no problem being parked for a bit while I prepped the next exercise (which he loved!), but he was under constant tension ready to go at the slightest hint of being sent to the next great challenge. While it’s important that your dog learns the basics of this kind of self-control while excited, this is going to get increasingly challenging for longer times and with lots of distractions - it’s part of what is trained in dog sports and it’s a lot of work: The dogs stay very alert, but know that they have to remain in place, it’s part of the exercise. It’s trained in increasingly longer times to hold. So it’s possible, although typically the dog would be in a “down” (usually with the hind legs under, ready to start, not comfortably flopped to one side), not a “sit”.
But there’s another kind of “parking situation” your dog should know, namely the “being sent to a place and knowing that now it’s time to rest and relax”. That’s similar to crate training or sending him to his basket or blanket. After all his immediate needs are met (so after exercising and potty break), being sent to his place signals a “show’s over, time to relax”.
You typically start small, creating positive associations with the blanket, rewarding first going there, then staying and so on. If you want to add a verbal command, make it different from the “sit”, “down” or whatever you use during exercises. You can also add objects, like a special chew toy or treat that signals “this is going to take a while, so I can relax”. It’s all about repetition and gradually increasing the time. If you want to reward, do not reward right before releasing, reward for being calm and relaxed (some dogs won’t do well with that kind of reward, especially high-energy breeds that go from zero to overdrive in a second, for those ignoring the dog can help tremendously, even just looking at them to check can prompt them into action). And avoid releasing when he is fidgeting, try to always call/release when he is relaxed and shows no impulse to get up. If he does get up on his own, gently guide him back as needed, don’t fuss.
We had a small blanket we took with us to signal “resting spot”, but that’s just one option.
It is estimated (I have no source now) that dogs, even adult, have the development of a 2-year-old child. So your question is, how do you teach a 2-year-old child to sit somewhere for 20 min or more, without making noise or other troubles?
At the beginning (of the training), your success will be limited, of course. Fort you must teach him to sit, stand, walk... After that, increase the time between commands, while the dog must still continue the previous command. Out of boredom, he will not comply all the time, but that is to be expected.
Your strategy is to make the dog understand that he needs to obey any command until he receives another one. Also, you should have a command for him to behave freely - without that, you will have a broom who will just sit where you put it.
Reminder: at the beginning, reward him with some treat for each good execution of a command. Later, reward him less often. Otherwise, he will obey commands only as long as he has his treats - and that is probably against your intended purpose.