I just made a few changes to show more like the grid you just posted.

/*
* Disclaimer!!!
* This is not a real query being executed, but a simplified version for general vision.
* Executing it with any other tool may produce a different result.
*/
with [JobAsmCTE] as
(select
[JobAsmbl].[JobNum] as [JobAsmbl_JobNum],
[JobAsmbl].[AssemblySeq] as [JobAsmbl_AssemblySeq],
[JobAsmbl].[PartNum] as [JobAsmbl_PartNum],
[JobAsmbl].[Parent] as [JobAsmbl_Parent],
(0) as [Calculated_lv],
(CAST(JobAsmbl.Description as nvarchar(1000))) as [Calculated_Description],
(CAST('\' + JobAsmbl.JobNum as nvarchar(1000))) as [Calculated_Sort]
from Erp.JobAsmbl as JobAsmbl
where (JobAsmbl.JobNum = @JobNum and JobAsmbl.AssemblySeq = @AssemblySeq)
union all
select
[ChildJobAsmbl].[JobNum] as [ChildJobAsmbl_JobNum],
[ChildJobAsmbl].[AssemblySeq] as [ChildJobAsmbl_AssemblySeq],
[ChildJobAsmbl].[PartNum] as [ChildJobAsmbl_PartNum],
[ChildJobAsmbl].[Parent] as [ChildJobAsmbl_Parent],
(JobAsmCTE.Calculated_lv+1) as [Calculated_lv],
(CAST(REPLICATE ('| ' , JobAsmCTE.Calculated_lv) + ChildJobAsmbl.Description as nvarchar(1000))) as [Calculated_Desc],
(CAST(JobAsmCTE.Calculated_Sort + '\' + ChildJobAsmbl.Description as nvarchar(1000))) as [Calculated_Sort]
from Erp.JobAsmbl as ChildJobAsmbl
inner join JobAsmCTE as JobAsmCTE on
ChildJobAsmbl.Parent = JobAsmCTE.JobAsmbl_AssemblySeq
and ChildJobAsmbl.JobNum = JobAsmCTE.JobAsmbl_JobNum
where (ChildJobAsmbl.AssemblySeq > 0))
select
[MainJobAsmCTE].[JobAsmbl_JobNum] as [JobAsmbl_JobNum],
[MainJobAsmCTE].[JobAsmbl_AssemblySeq] as [JobAsmbl_AssemblySeq],
[MainJobAsmCTE].[JobAsmbl_PartNum] as [JobAsmbl_PartNum],
[MainJobAsmCTE].[JobAsmbl_Parent] as [JobAsmbl_Parent],
[MainJobAsmCTE].[Calculated_lv] as [Calculated_lv],
[MainJobAsmCTE].[Calculated_Description] as [Calculated_Description],
[MainJobAsmCTE].[Calculated_Sort] as [Calculated_Sort]
from JobAsmCTE as MainJobAsmCTE