Use a query to number the columns and then crosstab --
SELECT ProjSubProj.ProjectID, ProjSubProj.ProjName, ProjSubProj.SubProjName, Sum(IIf([XX].[SubProjName]<=[ProjSubProj].[SubProjName],1,0)) AS SubProjNUM
FROM ProjSubProj, ProjSubProj AS XX
WHERE (((XX.ProjectID)=[ProjSubProj].[ProjectID]))
GROUP BY ProjSubProj.ProjectID, ProjSubProj.ProjName, ProjSubProj.SubProjName;
TRANSFORM First(SubProjNumbering.SubProjName) AS FirstOfSubProjName
SELECT SubProjNumbering.ProjectID, SubProjNumbering.ProjName
FROM SubProjNumbering
GROUP BY SubProjNumbering.ProjectID, SubProjNumbering.ProjName
PIVOT SubProjNumbering.SubProjNUM;
EDIT -- If you need more help then post the SQL of your crosstab.
Build a little, test a little