The best way to go is to have a container widget that you'd anchor things to that would also envelop all your content.
Widget (ALT+SHIFT+W)
- Main sprite, within the bounds of the widget, anchored
- Secondary sprite, within the bounds of the widget, anchored
- Labels, within the bounds of the widget.
Any reason why you're doing this dynamically and not creating a prefab out of your row and instantiating that instead? Note that anchors get updated in Update(), so your anchored sprite may simply not be positioned at the time you need it to. You can force it to be positioned by calling UpdateAnchors(), or NGUITools.ImmediatelyCreateDrawCalls.