You should get a performance improvement if you take the dynamic getdate() out of the queries ...
declare @now datetime
set @now = getdate()
INSERT INTO monitordata
SELECT * FROM data (NOLOCK) WHERE DATEDIFF(hh,time_stamp,@now) > 6
DELETE data WHERE DATEDIFF(hh,time_stamp, @now) > 6
This will also ensure that exactly the same resultsets are returned for both the INSERT and the DELETE queries.