Просто получите доступ к внутреннему словарю, как если бы он не был внутри массива внутри словаря.
Например:
[[[settingsDictionary objectForKey:@"key1"] objectAtIndex:index] removeObjectForKey:@"key2"];
или более распределено:
NSArray *innerArray = [topDict objectForKey:@"key1"];
NSMutableDictionary *innerDict = [innerArray objectAtIndex:index];
[innerDict removeObjectForKey:@"key2"];
или используя новую нижнюю запись:
[settingsDictionary[@"key1"][index] removeObjectForKey:@"key2"];
На самом деле я не могу придумать особого способа сделать это, просто получить доступ к объекту и вызвать метод removeObjectForKey.