I finally came up with the following solution:
% Transpose, so every unit is a coloum
valueMatrix = valueMatrix'
tfMatrix = tfMatrix'
RepeatsPerRow = sum(tfMatrix) % total rows per unit
RowsTot = sum(RepeatsPerRow) % total rows of final table
% Expand the specific matrices to total number of rows
var1 = repelem(ProductName,RepeatsPerRow);
var2 = repelem(NoTubeRows,RepeatsPerRow);
% ...
% Reshape value matrix to one coloum
valueMatrix = reshape(valueMatrix,[],1)
tfMatrix = reshape(tfMatrix ,[],1)
% final value matrix with indexing
valueMatrixFinal = valueMatrix(tfMatrix)
% create the table
Table = table(var1, valueMatrixFinal, var2)
I think my problem descripton wasn't detailed enough. But thanks to Simon for the inspiration!
Maybe not the fastest but for me a understandable solution.