I almost always prefer a custom coded solution over a plugin. In theory you should be able to get a grid layout with just CSS, though it often helps to add some extra div containers to the appropriate template unless you are really good at composing CSS selectors.
A CSS only solution only works well if everything is a fixed width and height. It’s easy to fix the height, but what it does to the content is not always pretty. To accommodate varying heights I recommend using jQuery’s Masonry. It is part of the base WP package, so you don’t even need to download it, just figure out how to integrate it into your theme. Beware, because using javascript and jQuery in WP differs from the usual generic instructions. Try to find WP specific references.
Whatever you do, you need to create a child theme to protect your changes from theme updates. From there, I suggest you either find a generic, predominantly CSS grid example to follow or a WP specific example of Masonry to follow. The key is to find a decent reference that you can more or less understand, then just go for it.
You’re going to run into a lot of things that just don’t make sense, and worse, do things that don’t work for no apparent reason. It will be a struggle. But learning to code is very empowering. You will eventually be able to do anything you like to a site.
You’re really pretty much on your own for this, though everything you need to know is on the Internet somewhere, you only need to find it. As always, if you really get stuck, we are here to help. Good luck and try to have fun!