You'd have to make it full width of the sprite image. Otherwise it could leak other images or blank space when being repeated.
Remeber that repeating really small background images (1-2px wide) can have terrible impact on performance - it's always better to use a bit larger images for that so even if it would be wee wide - it can actually be better page rendering wise then 1px wide one.
EDIT: (regarding your edit)
If your element is fixed height you can put it on your sprite width 100% width of the sprite with the required max-height of the element. Or if you know that its max width is smaller then the width of the sprite then make it a rectangle with the max width and height of your element.
If you dont know the max height and you want to put it at the very top so the gradient eases into a solid color it can be done if you put your repeated image at the very bottom of the sprite and position it with negative top value background-position: 0px -300px
where 300px is the distance from the top of your sprite to the top of the background image on your sprite.
Look here how google positioned repeated BG on a sprite:
