1. This is what you’re wanting to do correct?:
If so, it should be able to be accomplished with only CSS.
2. See shortcodes: https://startupwp.com/demo/shortcodes/
You could start with:
But, it might be easier to just use a plugin:
Actually, the best option may be to simply use the Grid page template. Remember how to edit a page and change the page template? You might simply create a page called “All Categories”, set it to the Grid template and then under Appearance > Widgets add multiple category widgets to the Grid area using a plugin like: