There are a few ways to achieve what you want.
1. Don't use offsets, just teach points for each motion you need.
2. Create a new tool frame that is rotated they way you need it to be in order to give you a tool axis to rotate around
3. Use matrix multiplication to calculate a new frame or position.
From the three options that you stated I think that the only option that will work is the third option, the rest will not work because I want use that offset as way for operators to do minor adjustments, because the parts that are being loaded into the machine are irregular so sometimes tiny modifications are needed , so I guess thats why creating a new frame will not work nor teaching points for each motion, because its just like fine-tuning of a point so my question here is:
Is there a way to do matrix multiplication on the robot itself or do I need to write a Karel script to do this?
And I am capable of doing that..