This idea evolved from the question: How can I get a count of the optional arguments with xparse?
Problem
I cannot get the ampersand to function as a delineator (for tab stops) inside the \DeclareDocumentCommand{\mygroup}. I thought maybe I should be looking here: How can I give active characters definitions with expl3?. I am quite sure what the issue is, because the ampersand works in the DeclareDocumentEnvironment{mytab}{O{}}.
Working (not really, just does not crash when typesetting): \doargs:n{#1} & \\ % interestingly, this ampersand does not crash typesetting.
Not working: {\clist_item:Nn \arglist {##1}\&} % added backslash to & for debugging
Example
\documentclass{article}
\usepackage{fontspec}
\usepackage{xparse,expl3}
\ExplSyntaxOn % based on https://tex.stackexchange.com/a/243442/13552
\DeclareDocumentEnvironment{mytab}{O{}}%
{\noindent\begin{tabular}{*{50}{l}}}
{\end{tabular}}
\DeclareDocumentCommand{\mygroup}{O{}m}{
\doargs:n{#1} & \\ % interestingly, this ampersand does not crash typesetting.
\multicolumn{\clist_count:N \arglist}{l}{\indent\parbox{\dimexpr\textwidth-\parindent\relax}{{\small\textit{#2}}}} \\%[\baselineskip]
}%
\clist_new:N\arglist
\cs_new_protected:Nn\doargs:n{{%
\clist_set:Nn\arglist{#1}%
\int_step_inline:nnnn {1}{1}{\clist_count:N \arglist}
{\clist_item:Nn \arglist {##1}\&} % added backslash to & for debugging
}}%
\ExplSyntaxOff
\begin{document}
\begin{mytab}
\mygroup[
Special 1,
ID 1,
A,
B]
{Some nice long description.}
\mygroup[
Special 2,
ID 2,
A,
B]
{Some nice long description.}
\mygroup[
Special 3,
ID 3,
A,
B]
{Some nice long description.}
\end{mytab}
\end{document}
