The 24 is the storage overhead per row in a table is fixed for all tables ot it varies?
The table row layout describes a header of 23 bytes for each table row, and that is independent of the data types.
One item that is variable is the “null bitmap” that is technically part of the row data: it is only present if there is a nullable column in the table. Yet another reason to define most columns as NOT NULL!