This page explains how the layout feature in TAB works and what are the problems preventing me from adding support for less than 4 columns.
Currently, TAB takes advantage of the 80 player tablist limit and therefore sends 80 fake players. They are sorted by UUID (<1.19.3), name (1.19.3 - 1.21.1) or listOrder (1.21.2+). The real players are pushed out of the tablist and not visible. This gives the plugin full control over what players see in the tablist without having to rely on other functions like teams to sort players.