I propose to use /tcb/add to natural height
in the subitems that may need to grow. Using this key, one can pass the excess height to distribute to each subitem, as a length computed from a macro defined by the /tcb/space to
key used in the first \tcbitem
(/tcb/space to
substracts the natural height of the box from the height that was asked for and stores the result in the macro whose name was passed in the argument). With this method, you need to write the number of items that may need to grow to match the space requirements in one place. Example for two items:
code={\setlength{\mylen}{\dimexpr \myspace/2}}
The main advantage of this solution is that is doesn't require to hardcode any height. The right column may be taller or shorter than the left one, this doesn't cause any problem: boxes in the shortest column automatically adapt to the height of the taller column.
Several compilation runs are needed for convergence (it seems that three compilation runs are usually enough).
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{raster, skins}
\newlength{\mylen}
\begin{document}
\begin{tcbitemize}[raster equal height=rows,
raster every box/.style={colframe=red!50!black,
colback=red!10!white}]
\tcbitem[blankest, space to=\myspace,
code={\setlength{\mylen}{\dimexpr \myspace/2}}]
\begin{tcbitemize}[
raster columns=1, raster row skip=0pt,
raster every box/.append style={add to natural height=\mylen}]
\tcbitem One
\tcbitem Two
\end{tcbitemize}
\tcbitem \huge tcbitemize\\ tcbitem\\ tcbitemize
\end{tcbitemize}
\end{document}
Variant that shows how to automatically center (both horizontally and vertically) the contents of the boxes in the left column:
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{raster, skins}
\usepackage{lipsum}
\newlength{\mylen}
\begin{document}
\begin{tcbitemize}[raster equal height=rows,
raster every box/.style={colframe=red!50!black,
colback=red!10!white}]
\tcbitem[blankest, space to=\myspace,
code={\setlength{\mylen}{\dimexpr \myspace/2}}]
\begin{tcbitemize}[
raster columns=1, raster row skip=0pt,
raster every box/.append style={halign=center, valign=center,
add to natural height=\mylen}]
\tcbitem One
\tcbitem Two
\end{tcbitemize}
\tcbitem \lipsum[1]
\end{tcbitemize}
\end{document}
What happens when the stacked items on the left are taller (in total) than the natural height of the box in the second column:
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{raster, skins}
\newlength{\mylen}
\begin{document}
\begin{tcbitemize}[raster equal height=rows,
raster every box/.style={colframe=red!50!black,
colback=red!10!white}]
\tcbitem[blankest, space to=\myspace,
code={\setlength{\mylen}{\dimexpr \myspace/2}}]
\begin{tcbitemize}[
raster columns=1, raster row skip=0pt,
raster every box/.append style={add to natural height=\mylen}]
\tcbitem One
\tcbitem Two
\end{tcbitemize}
\tcbitem Foo bar.
\end{tcbitemize}
\end{document}
Finally, with three items in the left column (any number can be used, of course):
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{raster, skins}
\usepackage{lipsum}
\newlength{\mylen}
\begin{document}
\begin{tcbitemize}[raster equal height=rows,
raster every box/.style={colframe=red!50!black,
colback=red!10!white}]
\tcbitem[blankest, space to=\myspace,
code={\setlength{\mylen}{\dimexpr \myspace/3}}]
\begin{tcbitemize}[
raster columns=1, raster row skip=0pt,
raster every box/.append style={add to natural height=\mylen}]
\tcbitem One
\tcbitem Two
\tcbitem Three
\end{tcbitemize}
\tcbitem \lipsum[1]
\end{tcbitemize}
\end{document}
Note: as it may not be obvious to everyone reading this, the reason why the outer tcbitemize
has two columns in each example is that the initial value of /tcb/raster columns
is 2 (cf. Library 'raster' in the tcolorbox
manual). This initial value is used implicitly in the sample code from the OP, and I kept it so in all examples above.