Maybe you need a query like this:
;
with Q1 as
(
select *, row_number() over (partition by PATNO order by ID) n
from Table1
),
Q2 as
(
select *, row_number() over (partition by PATNO order by ID) n
from Table2
)
select isnull(Q1.PATNO, Q2.PATNO) as PATNO, Q1.CPT as CPT1, Q2.CPT as CPT2
from Q1
full outer join Q2 on Q2.PATNO = Q1.PATNO and Q2.n = Q1.n
order by Q1.PATNO, Q2.PATNO, Q1.n, Q2.n
where ID is the primary key of tables. (Use the real column name instead of ID, or give details, or use other columns that allow precise ordering).