After some research and help from adobe campaign community i am able to solve this.
Option 1: create one to many link between the two dimensions, primary dimension will be your customer level and event data will be stored in temp table, then you can call the data in event dimension using a for loop within delivery by referring to the link name e.g targetdata.linkname[1].fieldname. This way is better when you have large number of events to write back.
Option 2: Select your recipient data by using query activity and then create a link(1-1 or 1-n) between recipient and event by using enrichment activity . then In same enrichment activity pulled out data by clicking edit column. so then you will be able access the data in
delivery like targetData.event field name. in case of 1-n it depends how many events you fetch and it will be like targetData.event1.fieldName etc. unfortunately you don't have possibility to use loop.
Hope this will help others and will save some time.