I don't know -- most implementations on popular architectures only have two (low order) bits for tagging due to alignment issues, so there may not be room. Might be easier in the case of a RISC V with the tagging extension.
Also it would be possible to implement such an approach in a C++ list container where you don't need boxing (the content type is known).
On a 64-bit machine where everything is aligned to two words (like SBCL), you get 4 bits for tags.