i3 handles workpaces a different than some other (non-tiling) window managers like kwin (from KDE) for example.
i3 creates workspaces dynamically when you switch to them or a window is created on them. They are also removed dynamically when there are no windows on them and they are not visible. Usually i3 will start up with only as many workspaces as you have displays, unless you assign and automatically start programs on other workspaces.
Other than on the i3bar workspaces in i3 do not really have a positional relation to each other. The only time a floating window that is pushed outside of the screenspace will apear on another workspace is if you have multiple displays and you move it from one display to the other. Otherwise if you move a window to the right out of a workpace it will not appear on another workpace that is right of your current one on the i3bar.
So at least internally, there is no way to get i3 to order workspaces in a 3x3 grid. (Other than actually hooking up 9 displays set up in a 3x3 grid)
That being said, i3 does not prevent you from thinking of the workspaces being ordered in a 3x3 grid. You could for example use the numpad keys for key bindings related to workspaces instead of the number row:
bindsym $mod+KP_1 workspace 1: SW
bindsym $mod+KP_2 workspace 2: S
bindsym $mod+KP_3 workspace 3: SE
bindsym $mod+KP_4 workspace 4: W
bindsym $mod+KP_5 workspace 5: M
bindsym $mod+KP_6 workspace 6: E
bindsym $mod+KP_7 workspace 7: NW
bindsym $mod+KP_8 workspace 8: N
bindsym $mod+KP_9 workspace 9: NE
bindsym $mod+Shift+KP_1 move workspace 1: SW
# [...] and so on
You could even use the i3 IPC interface to set up some scripts that allow to move to another workspace by giving a direction. For example workspace_right
would go from 7: NW
to 8: N
or 5: M
to 6: E
.
This question may be a duplicate to [How to arrange workspaces in a bidimensional manner](https://faq.i3wm.org/question/3591/how-to-arrange-workspaces-in-a-bidimensional-manner/).
Ah great! I have just started playing with bbpager. I hadn't got it working as I wanted yet so maybe this is the answer. Thanks again.