Since you want to use a sprite for the rope, it won't look at all like a rope texture if you stretch it enough.
A solution is to draw several sprite segments with a seamless pattern until you reach the target. To account for the times that these segments don't exactly fit the distance, you could do a little setup:
Say your base rope sprite is 64x8. You can add some subimages, each one half the width of the original (32,16,8,4).
You can then calculate how many "whole" segments fit between the player and target (make sure to round the distance) and draw them (each one drawn at the end of the previous). Take the remainder and check if one of your subimages fits exactly, or has an overlap of no more than the width of the smallest subimage. If there isn't any, draw the subimage with the second biggest width, again checking for an exact fit or an overlap of no more than the width of the smallest subimage.
Depending on the distance, the above will get repeated a couple of times.
Of course you'd have to account for the drawing of the grappling hook, so you could subtract its size from the distance.
Another idea is to use draw_sprite_part and have only one sprite with no subimages.