i3 is a well-documented tiling window manager that does what you are looking for.
"Tiling window managers [...] lay out their windows in logical subdivisions, breaking down the screen space in a logical pattern. For example, the first two windows that you open on your screen will each take up half of the screen and sit directly next to each other." (Source: Make Tech Easier)
In addition, there are a lot of really easy shortcuts that are good to know about, since you would maintain some control over what's happening:
- There are built in keyboard shortcuts that can resize the active window to take up the left or right half of the screen. Ctrl+Super+Left Arrow and Ctrl+Super+Right Arrow. If you have a number pad, you can also use Ctrl+Alt+keypad number
You could use window snapping--for example, dragging an open window towards the far right side of your screen automatically resizes the window so it takes up the right half of the screen. You can define what part of the screen does what to the window, and there are lot of size options, like top half, bottom right corner, etc. Window snapping is a feature part of Unity Tweak Tool. To install, open Terminal/other CLI and enter:
sudo apt-get install unity-tweak-tool
Window Snapping is under the Window Manager category.
- Finally, there's a lot of great suggestions in this answer. In particular, PyWO sounded interesting to me. For example, you can set it up so that you're able to move windows and snap them to windows' edges.