After your loop you are setting Image back to an empty string before you assign it to your ltrImage.Text. What you should be doing is adding your table to the innerHTML of a div tag instead of the text property. Have a look below at the changes to your code and markup.
<div style="width:auto; height:400px; overflow:hidden; ">
<marquee style="height:350px;overflow:hidden" direction="up" >
<div id="ltrImage" runat="server"></div>
</marquee>
</div>
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb web = site.OpenWeb())
{
SPList PicLib = web.Lists.TryGetList("ImageScroll");
string Image = "<table>";
SPListItemCollection listcol = PicLib.Items;
foreach (SPListItem item in listcol)
{
Image += "<tr><td><img src="" + web.Url + "/" + item.Url + "" style="height:auto;width:350px;" /></td></tr>
}
ltrImage.innerHTML = Image;
}
}</table>
Also notice how I closed the tag at the end. There is a better way to code that, but this should at least get you going.