I have a dataframe which is using data-driven attribute (say zone). Now this layer has grids with specific numbering but since it is data driven, each time the zone changes, the grid numbering will change as well. To make it easier for the user to see the grid numbers, i created another dataframe with just the grid numbers and tried to put it behind my original map. But, i am not able to make them align with one another perfectly such that the grids match between both the dataframes. I have tried setting the extent of the background dataframe to be based on the original dataframe's extent (100%) but it doesn't help as the sizes of 2 dataframes don't match. I am creating a mapbook with 100's of maps and would like to set it to match the grids automatically for each zone. I am attaching the sample image for easy reference of the question.
Make DDP extents creating polygons for each time zone that are 10% or whatever brings the data you want to display within the green lines. For each of these polygons, create a fishnet (Data Management, Feature Class, Create Fishnet) make a field in each fishnet populated with the timezone name or ID and the outside grid values. Choose to create label points and number of rows and columns corresponding to your current grid number of rows and columns. Once the fishnet is created select the points in the outer rows and columns. Populate these with the time zone name or ID. Enable DDP with your extent polygons and make a DDP defenition query in your fishnet to match time zone name for label points. Make grid label values for these points and change the symbology to nothing so the points don't appear but your labels do. Here's a an example pic:
It'll take a bit of work and data manipulation but you should be able to pull it off.