Depends on what you're doing. Even a full screen video game needs to support arbitrary screen sizes, and in less common cases, that could resize during runtime too (say if a laptop is picked up from its dock, and the monitors detach; or it's switched to a projector or other output). But nobody likes video games that prevent windowed operation. That wastes a whole screen, which is pretty silly if it's a huge display, or a low-res game (like one of the many retro pixel art games out there).
A lot of old video games were build on tiles, too, so this feels completely relevant, since you mentioned it's a tiled setup.
What's wrong with varying the number of tiles? The size of tiles certainly needs to scale with the desktop scale, or the window size. But it should probably also vary with size. A window that's 4000 pixels across, with more than adequate DPI for comfortable viewing, can display a lot of tiles!
And yes, making layouts look good, under the vast majority of cases, is hard. That's just how it is. Either your program sucks to use, or it looks bad, or it's hard to program. (Those are simply the negatives of the "pick two triangle" rule.)
To save time, you'll want to look up window managers. There ought to be something reasonable out there. (Back in my days of Java, I remember the AWT GridBagLayout being reasonably useful and powerful, and that's just one manager, just from AWT.) Afraid I know nothing of modern Windows (or whatever platform) GUI programming so I can't offer any specific tips.
Tim