Not to my knowledge. Most (or rather: all?) memory verification tools work in a way that embeds read- and write protected pages as guard zones between and around variables in order to provoke traps on accesses beyond the legally allocated areas.
Without severely disturbing structure alignment and integrity, this cannot be easily done in the middle of a structure.
EDIT:
Another point is: There is constructs where writing over structure member bounds is perfectly legal and the only reasonable possibility to achieve what you want. One example is copying structures to the heap:
struct x orig, *copy;
orig.a = 100;
strcpy (orig.str, "Test");
copy = malloc (sizeof (struct x));
memcpy (copy, &orig, sizeof (struct x));
This writes beyond structure member bounds as well, but is the only reasonable (and perfectly legal) way to get the structure onto the heap (apart from tedious and slow member-wise copy).
Another example would be
p = malloc (NUM_STRUCTS * sizeof (struct x));
memset (p, NUM_STRUCTS * sizeof (struct x), 0);
This is a perfectly valid constuct that allows you to clear an array of structures on the heap - And it does not even write aross internal struct boundaries, but also between structs.
In some sense, even calloc() would write beyond structure member bounds....
And, as a definite answer from the (admittedly older) Purify User Manual I happend to find in one of my desk drawers:
Purify detects array bounds errors in arrays within C structures only when the access extends beyond the entire structure
That counts as a "no" for me.