Tyr using RowNum. This will only return Product1 and Product2, so if there are more than 2, it will not return those, but based on the order, it will return different results if a third is added.
Create table #Products (Product varchar(10),
JobNo int)
insert into #Products (Product, JobNo)
values
('Prod1',1),
('Prod2',1),
('Prod3',2),
('Prod4',2),
('Prod1',3),
('Prod5',3),
('Prod4',4),
('Prod1',4)
Select * from (
Select JobNo, Product, 'Product' + cast(Row_number() over (partition by JobNo order by Product) as char(1)) as RowNum
from #Products) t
pivot (Max(Product) for RowNum in ([Product1], [Product2])) pvt