Here is an idea. Enumerate the rows of each group. Then put the even (or odd) ones in the control group. You can do this in SQL Server using an updatable CTE:
with toupdate as (
select m.*,
row_number() over (partition by PkgPt2, PkgPt3 order by newid()) as seqnum
from DM_Main m
)
update toupdate
set PkgPt1 = (case when seqnum % 2 = 0 then 'CD2' else PkgPT1 end);