Try with below query i am not sure it will give data under 5 seconds but performance will improve.
create table #oz (
id int, from_sto_move bit, product_id int, [date] datetime,
qty_orlogo decimal(30, 10), qty_zarlaga decimal(30, 10), cost_prev decimal(30, 10)
)
print 'Query started on: ' + CONVERT(nvarchar(30), GETDATE(), 126)
select
oz1.product_id,
oz1.id,
oz1.from_sto_move,
sum(isnull(oz2.qty_orlogo, 0) - isnull(oz2.qty_zarlaga, 0))
qty_oz,
oz1.cost_prev
from
#oz oz1 (NOLOCK) left join
(Select product_id,[date],oz2.qty_orlogo,oz2.qty_zarlaga FROM #oz (NOLOCK)) oz2 on
oz1.product_id = oz2.product_id and
oz1.[date] > oz2.[date]
group by oz1.product_id, oz1.id, oz1.from_sto_move, oz1.cost_prev
print 'Query finished on: ' + CONVERT(nvarchar(30), GETDATE(), 126)