The general concept would be to use a DELETE SQL statement, with a where condition that excludes the 50% that you need to keep.
A common approach would be to use a timestamp field to decied what stayes or goes.
Code:
Delete from YourTable Where TimeStampField < '1-JAN-2004'
might be just the ticket, for instance.
Now, you should possibly keep the old data in an archival table; if so, first copy the records from the active table to the archive table.
You don't say
why you feel you need to remove some of the data, but if it's because of data access delays, you should be able to index the table so that this issue should largely go away. I'm not familiar with DB2, it should allow you to add views to limit the amount of data returned. (you could define a view of your table with a where clause to filter out the old data, for instance)
If you have a front-end client that access the data, but is slow in retrieving the table, you should take a close look at the design - in particular, make sure that you're not pulling a copy of the entire table to the client if the entire table contents aren't needed - instead, allow the database server to filter the results first.