I wanted to have a blog where any user can post on my blog using Github Pages.
GitHub pages are static so you won’t be able to do this without external resources, you could try using Netlify hosted forms for your project.
You can, but you need to use your Github repo for that.
Start by adding collaborators to your repository or by approving pull requests from others.
Yes, this works rather well if your users are tech-savvy enough to be willing to interact with GH (not too hard, but needs some explaining if they are tech noobs).
GH has good support for Jekyll, and that could give you an easy start. As for Jekyll themes I find Minimal-Mistakes to be quite cool and well-documented.
Users only have to PR a Markdown doc with their post and some frontmatter fields in the top (title, author, etc.).