You can't do that across stages in a single pipeline but you might be able to do it across pipelines. I'm going to assume pipeline A is the first pipeline and you want pipeline B to run 2 hours after A has finished.
Here are some possible scenarios:
1. Pipeline A runs on a schedule
If yes, then you can set the pipeline B to run roughly 2 hours after A.
2. Pipeline A runs on changes/manually triggered
If yes, then you can have a stage at the end of pipeline that could generate a cron schedule and update the pipeline B with it. It's not nice I know.
3. Option 3
If you want to run pipeline B to run after a few hours / minutes because of an external event, see if you can have that event source trigger pipeline B via GoCD API. I don't know if this might fit your use-case but just putting it out there.
4. Custom SCM Plugin
Another fancy way would be to write a custom new SCM plugin that does these for you. Depending on how much you want to do this in your infrastructure, you can choose to invest in something like that.
Having said that, I would really like to understand your use-case if it's okay to share on why you would need something like that?