Q:

Using grid how do I not have frames push each other out of place

Been working on this problem for more than a day.
I would like for my top frames to be right up against the picture.
When I don't include section 2 frames below the northern frame it works out nicely.
I have looked up and tried using column_configure, tried weight. 
Honestly I am probably using them wrong.
I know there are fixes, here, but its not yet clicking in my mind on how to make it work.

If possible could you not use CLASSES or to many fancy FUNCTIONS.
Honestly at this stage I am weak in them at the moment.
Thanks in advance for taking the time to read and for any assistance offered.
from tkinter import *

import os
import PIL.Image
import random
import sys
import tkinter as tk

global logo
global po

# path to image file
home = os.path.expanduser('~')
dt = desktop_top = os.path.join(home,'Desktop')
p3p = python_3_projects = os.path.join(dt,'Python 3 Projects')
ilfru = images_labeled_for_reuse = os.path.join(p3p,'Images Labeled for Reuse')
gp = gurps_path = os.path.join(ilfru,'GURPS')
gg = gurps_gif = os.path.join(gp,'GIF')

fc = 1
# Count number of file in GURPS/GIF folder
for root, dirs, files in os.walk(gg):
    for filenames in files:
        fc +=1

# Pick a random number based off number of files
rn = random.randint(1,fc)

# Cycle through files and assign the random file to logo
fc = 1
# Count number of file in GURPS/GIF folder
for root, dirs, files in os.walk(gg):
    for filenames in files:
        if fc == rn:
            logo = os.path.join(gg,filenames)
        fc +=1

# Get Image Size
# po PIL Open
po = open(logo,"rb")
img = PIL.Image.open(po)

# Image Width, Image Height
iw,ih = img.size

ih = ih + 5

root = tk.Tk()

# Round Down Nearest tenth
def rd(num,divisor):
    x = (num/divisor)-(num%divisor)
    x = int(x)
    return x

# Get Screen Dimensions
sh = screen_height = root.winfo_screenheight()
sw = screen_width = root.winfo_screenwidth()

# Window size
rg = str(sw)+'x'+str(sh)
root.geometry(rg)

# Create all frames
nwfh = rd(sh, 10)
nwfw = rd(sw, 4)

equal_sides = nwfh + nwfw
equal_sides = rd(equal_sides,4)

ntf = rd(sw-equal_sides,1)

# Frames

spacer_width = rd(equal_sides,10)

frame0 = Frame(root,bg='black',width=sw,height=sh,padx=5,pady=5)
frame0.grid(row=0,column=0)

north_west_top_frame = Frame(frame0, bg='cyan', width=equal_sides, height=equal_sides)

frame_spacer0 = Frame(frame0, bg='beige', width=spacer_width, height=ih)

northern_top_frame = Frame(frame0,bg='alice blue', width=ntf,height=ih,padx=15,pady=15)

# Layout all frames

# Trying configure
# northern_top_frame.grid_columnconfigure(1,weight=1)

# Frame Section 1
north_west_top_frame.grid(row=0,column=0, sticky="nw")

frame_spacer0.grid(row=0, column=1, sticky="w")

northern_top_frame.grid(row=0,column=2)

# Put logo in nw frame
glogo = tk.PhotoImage(file=logo)
gurps_logo = tk.Label(north_west_top_frame, compound = tk.CENTER, text='GURPS\nCHARACTER\nSHEET',fg = "red", font="Helvetica 10 bold", image=glogo).grid(row=0,column=0)

l1 = tk.Label(northern_top_frame, anchor='w', text="Name: ", font = "Helvetica 10 bold",width=17)
l1.grid(row=0, column=0)
e1 = Entry(northern_top_frame)
e1.grid(row=0,column=1)

# Spacer Width = pic prame width -
# ih is northern frame height
# need label height

spacer_height = ih-30

# spacer
# s1 = Frame(northern_top_frame,bg='firebrick', width=ntf,height=spacer_height)
# s1.grid(row=1,column=1, columnspan=11, sticky=tk.W+tk.E)

l4 = tk.Label(northern_top_frame, anchor='w', text="Ht: ", font = "Helvetica 10 bold", width=17)
l4.grid(row=2, column=0)
e4 = Entry(northern_top_frame)
e4.grid(row=2,column=1)

l9 = tk.Label(northern_top_frame, anchor='w', text="Appearance: ", font = "Helvetica 10 bold", width=17)
l9.grid(row=4, column=0)
e9 = Entry(northern_top_frame)
e9.grid(row=4,column=1, columnspan=11, sticky=tk.W+tk.E)

# Section 2
s2 = Frame(frame0,bg='firebrick', width=ntf)
s2.grid(row=5,column=0, sticky="w")

l10 = tk.Label(s2, text="LEVEL")
l10.grid(row=6,column=1)

root.mainloop()

A:

If I understand correctly, your problem basically boils down to this: the beige and white frames are pushed to the right by the red frame, although there is enough room right next to the cyan frame

The Minimal Complete Verifiable Example for this could be as simple as:
from tkinter import *

root = Tk()

frame0 = Frame(root, bg='black', width=500, height=300, padx=5, pady=5)
frame0.grid(row=0, column=0)

north_west_top_frame = Frame(frame0, bg='cyan', width=150, height=150)
frame_spacer0 = Frame(frame0, bg='beige', width=50, height=150)
northern_top_frame = Frame(frame0, bg='alice blue', width=300, height=150)

north_west_top_frame.grid(row=0, column=0, sticky="nw")
frame_spacer0.grid(row=0, column=1, sticky="w")
northern_top_frame.grid(row=0, column=2)

s2 = Frame(frame0, bg='firebrick', width=500, height=150)
s2.grid(row=5, column=0, sticky="w")

root.mainloop()

The problem here is how you define the grid. You put both north_west_top_frame and s2 in column 0, the leftmost column. The you put frame_spacer0 one column to the right and northern_top_frame one column further than that. Every column stretches to fit everything you put in it, so the first column (column 0) gets as wide as s2. The next column, with the beige frame, is next to the first column, so it will start where the red frame ends.
What you seem to want is that the red frame is not only in column 0, but also in column 1 and 2, under the beige and white frames. To do that use columnspan:
s2.grid(row=5, column=0, columnspan=3, sticky="w")

When you do this you see the red frame spans all the way across the cyan, beige and white frames:

