You need an intermediary numbers table, or a table-valued function (if that option is available to you) which will produce numbers.
Assuming you had a Numbers table, which is populated like so:
    Number
    ------
         1
         2
       ...
    100000
(or as large as you need it to be, and there are efficient mechanisms for generating a numbers table of large size)
You would then issue the following query:
select
    p.Product
from
    Products as p
        inner join Numbers as n on n.Number <= p.Quantity 
This would produce the result you want.
A numbers table is incredibly helpful in SQL, and Itzik Ben-Gan goes into it and other great querying techniques in his books (listed on his website).  I highly recommend them.